我有一个Android应用程序需要能够加载外部Jar文件。我知道罐子的位置。Android:通过ClassLoader加载外部Jar文件
我一直在玩Android API提供的PathClassLoader类无济于事。我使用下面的代码从活动中:
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'。
我想找到一种方法来加载外部Jar文件中的类,而不需要'classes.dex'文件。 Jar文件不包含这个文件,但是当其他应用程序在类路径中使用Jar构建时,Dalvik可以非常高兴地加载这些类。
简而言之:如何在不需要'classes.dex'的情况下从外部Jar文件加载类?
非常感谢, P
更新 通过的Dalvik记录的消息是
Zip是好的,但没有classes.dex内,并在同一目录中没有有效.odex文件
嗨@protectedmember,我处于类似的情况。您能否告诉我要采取的措施?我实际上已经使用dex2jar将apk转换为jar文件。现在,当我使用dexclassloader加载这个类时,有一个错误,例如'Zip很好,但没有classes.dex,并且在同一个目录下没有有效的.odex文件。 – Lal