我有一个需要能够加载外部 Jar 文件的 Android 应用程序。我知道罐子的位置。
我一直在玩 Android API 提供的 PathClassLoader 类,但无济于事。我在 Activity 中使用以下代码:
String jarPath = "/sdcard/jars/testjar.jar";
PathClassLoader myClassLoader = new PathClassLoader(jarPath, ClassLoader.getSystemClassLoader());
try
{
Class<?> clazz = Class.forName("com.test.Class1", true, myClassLoader);
}
catch(Exception ex)
{
ex.printStackTrace();
}
在实例化 PathClassLoader 实例后,Dalvik 向 LogCat 打印一条消息,告诉我它找不到“classes.dex”文件。之后,“Class.forName”会抛出“ClassNotFoundException”。
我正在尝试找到一种无需“classes.dex”文件即可从外部 Jar 文件加载类的方法。Jar 文件不包含这个文件,但是当其他应用程序使用类路径中的 Jar 构建时,Dalvik 可以非常愉快地加载类。
简单地说:如何在不需要“classes.dex”的情况下从外部 Jar 文件中加载类?
非常感谢,P
更新 Dalvik 记录的消息是
zip很好,但是里面没有classes.dex,同一目录下也没有有效的.odex文件