0

Android5.0 より前,私は DexClassloader ロード プラグインを動的に使用しています,次のようなコード:</p>

DexClassLoader localDexClassLoader = new DexClassLoader(pluginSrcJarDir,cont.getDir("dex", 0).getAbsolutePath(), null, ClassLoader.getSystemClassLoader().getParent());

Class<?> pluginClass = localDexClassLoader.loadClass(className);  //error here 

ただし、Android5.0 では次のエラーが表示されます:</p>

04-03 05:51:42.743: W/(1462): Zip: 中央ディレクトリの最後に 792 余分なバイトがある 04-03 05:51:42.749: W/System.err(1462): java.lang.ClassNotFoundException : パスにクラス "com.garfield.item0.system.plugin01.AckGetIntroduce" が見つかりませんでした: DexPathList[[zip ファイル "/data/data/com.garfield/cache/1428040302214.jar"],nativeLibraryDirectories=[/vendor /lib、/system/lib]] 04-03 05:51:42.811: W/System.err(1462): 抑制: java.io.IOException: zip アーカイブ '/data/data/com.garfield/ を開けませんでしたcache/1428040302214.jar' 04-03 05:51:42.820: W/System.err(1462): dalvik.system.DexFile.openDexFileNative(ネイティブ メソッド) 04-03 05:51:42.820: W/System.err (1462): dalvik.system.DexFile.openDexFile(DexFile.java:295) 04-03 05:51:42.821: W/System.err(1462): dalvik.system で。DexFile.(DexFile.java:111) 04-03 05:51:42.821: W/System.err(1462): dalvik.system.DexFile.loadDex(DexFile.java:151) 04-03 05:51:42.821 : W/System.err(1462): dalvik.system.DexPathList.loadDexFile(DexPathList.java:265) で

なぜ?助けてください!5.0より前は大丈夫です。5.0で何が起こったのですか!</p>

4

1 に答える 1

0

Android 5.0 以降、JVMAndroid が動作する はARTありませDalvikん。そして、logcat トレースを見てください:

dalvik.system.DexPathList.loadDexFile

あなたのコードはまだDalvik物事を実行しようとしました。

于 2015-04-03T06:16:02.960 に答える