Android - 次のように、jar ファイルを ClassLoader に動的に追加します。
String strJarfile = "/data/data/com.example.classloader/files/apps/Calc/SumAndSub.jar";
URLClassLoader sysloader = (URLClassLoader) ClassLoader
.getSystemClassLoader();
try
{
File f = new File(strJarfile);
URL u = f.toURI().toURL();
Class[] parameters = new Class[] { URL.class };
Method method = URLClassLoader.class.getDeclaredMethod("addURL",
parameters);
method.setAccessible(true);
method.invoke(sysloader, new Object[] { u });
}
catch (Exception e)
{
e.printStackTrace();
}
そして、エラー:
Caused by: java.lang.ClassCastException: dalvik.system.PathClassLoader cannot be cast to java.net.URLClassLoader
このコードは、java-core では正常に機能しますが、android では機能しません。解決策とは?ありがとう、