我有一個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