VirtualAPK icon indicating copy to clipboard operation
VirtualAPK copied to clipboard

java.lang.IllegalAccessError:Class ref in pre-verified class resolved to unexpected implementation

Open telenewbie opened this issue 6 years ago • 2 comments

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-》加载插件,就出现这个问题

telenewbie avatar Oct 09 '18 09:10 telenewbie

+1

CD3108 avatar Nov 26 '18 02:11 CD3108

+1

oywjAndroid avatar May 15 '19 10:05 oywjAndroid