It looks like Android must have made an update to their code that is warning about the code that is calling Thread.getContextClassLoader(). This is benign on the Anrdoid device.
// loadClass() provided by: Thomas Margreiter
private static Class loadClass(String name) throws ClassNotFoundException
{
String className = name;
boolean arrayType = false;
Class primitiveArray = null;
while (className.startsWith("["))
{
arrayType = true;
if (className.endsWith(";")) className = className.substring(0,className.length()-1);
if (className.equals("[B")) primitiveArray = byte[].class;
else if (className.equals("[S")) primitiveArray = short[].class;
else if (className.equals("[I")) primitiveArray = int[].class;
else if (className.equals("[J")) primitiveArray = long[].class;
else if (className.equals("[F")) primitiveArray = float[].class;
else if (className.equals("[D")) primitiveArray = double[].class;
else if (className.equals("[Z")) primitiveArray = boolean[].class;
else if (className.equals("[C")) primitiveArray = char[].class;
int startpos = className.startsWith("[L") ? 2 : 1;
className = className.substring(startpos);
}
Class currentClass = null;
if (null == primitiveArray)
{
currentClass = Thread.currentThread().getContextClassLoader().loadClass(className);
}
if (arrayType)
{
currentClass = (null != primitiveArray) ? primitiveArray : Array.newInstance(currentClass, 0).getClass();
while (name.startsWith("[["))
{
currentClass = Array.newInstance(currentClass, 0).getClass();
name = name.substring(1);
}
}
return currentClass;
}
If you try this and it works fine for you (eliminates the warning), please let me know. This is what I had originally (you might need to try/catch an exception around Class.forName()). But Thomas Margreiter sent me the method above to get Class.forName() to work on an Android device. This was a long time ago, and perhaps this more complicated version of Class.forName() is no longer required.