VirtualAPK icon indicating copy to clipboard operation
VirtualAPK copied to clipboard

宿主工程加载插件cash

Open 2022happynew opened this issue 7 years ago • 3 comments

  • VirtualAPK 运行相关:
  1. core version : 'com.didi.virtualapk:core:0.9.6'
  2. 问题机型,系统版本:SM-G955F, Android4.4.2
  3. 完整log E/dalvikvm: Could not find class 'android.databinding.DataBinderMapperProxy', referenced from method com.didi.virtualapk.PluginManager.hookDataBindingUtil
  4. 复现步骤:宿主加载插件时奔溃
  • VirtualAPK 构建相关:插件构建是成功的。

2022happynew avatar Aug 16 '18 03:08 2022happynew

完整log 08-16 10:55:48.146 9852-9852/com.xiaoma.launcher E/dalvikvm: Could not find class 'android.databinding.DataBinderMapperProxy', referenced from method com.didi.virtualapk.PluginManager.hookDataBindingUtil 08-16 10:55:48.316 9852-9852/com.xiaoma.launcher E/AndroidRuntime: FATAL EXCEPTION: main Process: com.xiaoma.launcher, PID: 9852 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.newApplication(Instrumentation.java:992) at com.didi.virtualapk.internal.LoadedPlugin.makeApplication(LoadedPlugin.java:388) at com.didi.virtualapk.internal.LoadedPlugin.access$300(LoadedPlugin.java:77) at com.didi.virtualapk.internal.LoadedPlugin$1.run(LoadedPlugin.java:291) at com.didi.virtualapk.utils.RunUtil.runOnUiThread(RunUtil.java:57) at com.didi.virtualapk.internal.LoadedPlugin.invokeApplication(LoadedPlugin.java:288) at com.didi.virtualapk.PluginManager.loadPlugin(PluginManager.java:245) at com.xiaoma.launcher.BaseApp.onCreate(BaseApp.java:85) at com.xiaoma.base.CommonApp.onCreate(CommonApp.java:89) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4346) at android.app.ActivityThread.access$1500(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5019) 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:779) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) at dalvik.system.NativeStart.main(Native Method)

2022happynew avatar Aug 16 '18 03:08 2022happynew

core version : 'com.didi.virtualapk:core:0.9.6' android os version: 7.1.2 复现步骤:宿主加载插件时奔溃 log 如下:

I/art: Rejecting re-init on previously-failed class java.lang.Class<android.databinding.DataBinderMapperProxy>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/databinding/DataBinderMapper; at com.didi.virtualapk.PluginManager com.didi.virtualapk.PluginManager.getInstance(android.content.Context) (PluginManager.java:76) at void com.jd.ds.host.MainActivity.onCreate(android.os.Bundle) (MainActivity.java:41) at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:6709) at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1118) at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2619) at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2727) at void android.app.ActivityThread.-wrap12(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1) at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1478) at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102) at void android.os.Looper.loop() (Looper.java:154) at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6121) at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2) at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:912) at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:802) Caused by: java.lang.ClassNotFoundException: Didn't find class "android.databinding.DataBinderMapper" on path: DexPathList[[zip file "/data/app/com.jd.ds-2/base.apk", zip file "/data/app/com.jd.ds-2/split_lib_dependencies_apk.apk", zip file "/data/app/com.jd.ds-2/split_lib_slice_0_apk.apk", zip file "/data/app/com.jd.ds-2/split_lib_slice_1_apk.apk", zip file "/data/app/com.jd.ds-2/split_lib_slice_2_apk.apk", zip file "/data/app/com.jd.ds-2/split_lib_slice_3_apk.apk", zip file "/data/app/com.jd.ds-2/split_lib_slice_4_apk.apk", zip file "/data/app/com.jd.ds-2/split_lib_slice_5_apk.apk", zip file "/data/app/com.jd.ds-2/split_lib_slice_6_apk.apk", zip file "/data/app/com.jd.ds-2/split_lib_slice_7_apk.apk", zip file "/data/app/com.jd.ds-2/split_lib_slice_8_apk.apk", zip file "/data/app/com.jd.ds-2/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.jd.ds-2/lib/arm64, /system/lib64, /vendor/lib64]] at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56) at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380) at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312) at com.didi.virtualapk.PluginManager com.didi.virtualapk.PluginManager.getInstance(android.content.Context) (PluginManager.java:76) at void com.jd.ds.host.MainActivity.onCreate(android.os.Bundle) (MainActivity.java:41) at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:6709) at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1118) at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2619) at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2727) at void android.app.ActivityThread.-wrap12(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1) at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1478) at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102) at void android.os.Looper.loop() (Looper.java:154) at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6121) at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2) at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:912) at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:802) W/System.err: java.lang.ClassNotFoundException: android.databinding.DataBindingUtil W/System.err: at java.lang.Class.classForName(Native Method) W/System.err: at java.lang.Class.forName(Class.java:400) W/System.err: at java.lang.Class.forName(Class.java:326) W/System.err: at com.didi.virtualapk.PluginManager.hookDataBindingUtil(PluginManager.java:118) W/System.err: at com.didi.virtualapk.PluginManager.prepare(PluginManager.java:100) W/System.err: at com.didi.virtualapk.PluginManager.(PluginManager.java:93) W/System.err: at com.didi.virtualapk.PluginManager.getInstance(PluginManager.java:79) W/System.err: at com.jd.ds.host.MainActivity.onCreate(MainActivity.java:41) W/System.err: at android.app.Activity.performCreate(Activity.java:6709) W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2619) W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727) W/System.err: at android.app.ActivityThread.-wrap12(ActivityThread.java) W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478) W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102) W/System.err: at android.os.Looper.loop(Looper.java:154) W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6121) W/System.err: at java.lang.reflect.Method.invoke(Native Method) W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912) W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802) W/System.err: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.databinding.DataBindingUtil" on path: DexPathList[[zip file "/data/app/com.jd.ds-2/base.apk", zip file "/data/app/com.jd.ds-2/split_lib_dependencies_apk.apk", zip file "/data/app/com.jd.ds-2/split_lib_slice_0_apk.apk", zip file "/data/app/com.jd.ds-2/split_lib_slice_1_apk.apk", zip file "/data/app/com.jd.ds-2/split_lib_slice_2_apk.apk", zip file "/data/app/com.jd.ds-2/split_lib_slice_3_apk.apk", zip file "/data/app/com.jd.ds-2/split_lib_slice_4_apk.apk", zip file "/data/app/com.jd.ds-2/split_lib_slice_5_apk.apk", zip file "/data/app/com.jd.ds-2/split_lib_slice_6_apk.apk", zip file "/data/app/com.jd.ds-2/split_lib_slice_7_apk.apk", zip file "/data/app/com.jd.ds-2/split_lib_slice_8_apk.apk", zip file "/data/app/com.jd.ds-2/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.jd.ds-2/lib/arm64, /system/lib64, /vendor/lib64]] W/System.err: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) W/System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:380) W/System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:312) W/System.err: ... 20 more

seamillet avatar Aug 28 '18 10:08 seamillet

java.lang.NoClassDefFoundError: android.databinding.DataBindingUtil 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at android.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:261) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at com.iflytek.framelib.base.BaseActivity.h(BaseActivity.java:22) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at com.iflytek.framelib.base.CommonActivity.onCreate(CommonActivity.java:115) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at com.iflytek.framelib.base.BaseStudyActivity.onCreate(BaseStudyActivity.java:49) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at com.iflytek.module_map.studysystem.StudySystemActivity.onCreate(StudySystemActivity.java:72) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:7023) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:7014) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at com.didi.virtualapk.internal.VAInstrumentation.callActivityOnCreate(VAInstrumentation.java:156) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2734) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2859) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at android.app.ActivityThread.-wrap11(Unknown Source:0) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1592) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at android.os.Looper.loop(Looper.java:164) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6518) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/databinding/DataBinderMapper; 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at android.databinding.DataBindingUtil.(DataBindingUtil.java:31) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at java.lang.Class.classForName(Native Method) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at java.lang.Class.forName(Class.java:453) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at com.didi.virtualapk.utils.Reflector$QuietReflector.on(Reflector.java:236) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at com.didi.virtualapk.utils.Reflector$QuietReflector.on(Reflector.java:226) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at com.didi.virtualapk.PluginManager.hookDataBindingUtil(PluginManager.java:181) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at com.didi.virtualapk.PluginManager.hookCurrentProcess(PluginManager.java:145) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at com.didi.virtualapk.PluginManager.(PluginManager.java:139) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at com.didi.virtualapk.PluginManager.createInstance(PluginManager.java:100) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at com.didi.virtualapk.PluginManager.getInstance(PluginManager.java:85) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at com.iflytek.replugin.App.attachBaseContext(App.java:16) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at android.app.Application.attach(Application.java:189) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at android.app.Instrumentation.newApplication(Instrumentation.java:1104) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at android.app.Instrumentation.newApplication(Instrumentation.java:1088) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at android.app.LoadedApk.makeApplication(LoadedApk.java:983) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5730) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at android.app.ActivityThread.-wrap1(Unknown Source:0) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1659) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: ... 6 more 09-02 10:40:45.564 4060 4060 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.databinding.DataBinderMapper" on path: DexPathList[[zip file "/data/app/com.iflytek.replugin-Sq-jNW2w9iPfFb8R99ygoA==/base.apk"],nativeLibraryDirectories=[/data/app/com.iflytek.replugin-Sq-jNW2w9iPfFb8R99ygoA==/lib/arm64, /system/lib64, /vendor/lib64]] 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:379) 09-02 10:40:45.564 4060 4060 E AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:312)

duoduo4 avatar Sep 02 '19 02:09 duoduo4