VirtualAPK
VirtualAPK copied to clipboard
java.lang.IllegalAccessError:Class ref in pre-verified class resolved to unexpected implementation
10-09 17:00:31.598 18036-18036/com.didi.virtualapk E/CrashCommonHandler: java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation at dalvik.system.DexFile.defineClassNative(Native Method) at dalvik.system.DexFile.defineClass(DexFile.java:222) at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:215) at dalvik.system.DexPathList.findClass(DexPathList.java:322) at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54) at java.lang.ClassLoader.loadClass(ClassLoader.java:497) at java.lang.ClassLoader.loadClass(ClassLoader.java:491) at java.lang.ClassLoader.loadClass(ClassLoader.java:457) at android.app.Instrumentation.newActivity(Instrumentation.java:1061) at com.didi.virtualapk.internal.VAInstrumentation.newActivity(VAInstrumentation.java:136) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2111) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2243) at android.app.ActivityThread.access$800(ActivityThread.java:139) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5011) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:832) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:648) at dalvik.system.NativeStart.main(Native Method)
Process: com.didi.virtualapk, PID: 18086
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.didi.virtualapk/com.didi.virtualapk.core.A$1}: android.content.ActivityNotFoundException: error intent: #Intent;component=com.didi.virtualapk/.core.A%241;B.isPlugin=true;S.target.package=com.didi.virtualapk.demo;S.target.activity=com.didi.virtualapk.demo.aidl.BookManagerActivity;end
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2120)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2243)
at android.app.ActivityThread.access$800(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5011)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:832)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:648)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.ActivityNotFoundException: error intent: #Intent;component=com.didi.virtualapk/.core.A%241;B.isPlugin=true;S.target.package=com.didi.virtualapk.demo;S.target.activity=com.didi.virtualapk.demo.aidl.BookManagerActivity;end
at com.didi.virtualapk.internal.VAInstrumentation.newActivity(VAInstrumentation.java:129)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2111)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2243)
at android.app.ActivityThread.access$800(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5011)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:832)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:648)
at dalvik.system.NativeStart.main(Native Method)
在该项目中直接进行修改,
static String[] apkFileNames;
static {
apkFileNames = new String[]{"Test.apk","Other.apk"};
}
private void loadPlugin(Context base) {
if (!Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
Toast.makeText(this, "sdcard was NOT MOUNTED!", Toast.LENGTH_SHORT).show();
}
PluginManager pluginManager = PluginManager.getInstance(base);
for (int i = apkFileNames.length - 1; i >= 0; i--) {
File apk = new File(Environment.getExternalStorageDirectory(), apkFileNames[i]);
if (apk.exists()) {
try {
pluginManager.loadPlugin(apk);
Log.i(TAG, "Loaded plugin from apk: " + apk);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
在加载多个插件APK的时候, 然后点击demo中的button-》加载插件,就出现这个问题
+1
+1