Tencent / Shadow

零反射全动态Android插件框架
BSD 3-Clause "New" or "Revised" License
7.43k stars 1.3k forks source link

插件引入优量汇后展示广告报错 Class not found when unmarshalling #472

Closed sunshengfei closed 3 years ago

sunshengfei commented 3 years ago

项目拉下来,单在sample-plugin中引入优量汇的sdk(GDTSDK.unionNormal.4.330.1200)展示激励视频的时候报错了, 求大神解答下,这个是Shadow不兼容优量汇1200版的sdk吗 PS:经测试在另一个Replugin框架上也是如此错误

Init ADActivity Delegate Faile,DelegateName:rewardVideo
    java.lang.AbstractMethodError: abstract method "com.qq.e.comm.pi.ACTD com.qq.e.comm.pi.InnerPOFactory.getActivityDelegate(java.lang.String, com.tencent.shadow.core.runtime.ShadowActivity)"
        at com.qq.e.ads.ADActivity.onCreate(Unknown Source:76)
        at com.qq.e.ads.RewardvideoPortraitADActivity.onCreate(Unknown Source:0)
        at com.tencent.shadow.core.loader.delegates.ShadowActivityDelegate.onCreate(ShadowActivityDelegate.kt:144)
        at com.tencent.shadow.core.runtime.container.PluginContainerActivity.onCreate(PluginContainerActivity.java:84)
        at android.app.Activity.performCreate(Activity.java:8086)
        at android.app.Activity.performCreate(Activity.java:8074)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1313)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3746)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3952)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2386)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:213)
        at android.app.ActivityThread.main(ActivityThread.java:8169)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
2021-02-01 23:34:23.022 6705-6705/com.tencent.shadow.sample.host E/Parcel: Class not found when unmarshalling: com.qq.e.comm.plugin.model.RewardADData
    java.lang.ClassNotFoundException: com.qq.e.comm.plugin.model.RewardADData
        at java.lang.Class.classForName(Native Method)
        at java.lang.Class.forName(Class.java:454)
        at android.os.Parcel.readParcelableCreator(Parcel.java:3014)
        at android.os.Parcel.readParcelable(Parcel.java:2964)
        at android.os.Parcel.readValue(Parcel.java:2866)
        at android.os.Parcel.readArrayMapInternal(Parcel.java:3244)
        at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:292)
        at android.os.BaseBundle.unparcel(BaseBundle.java:236)
        at android.os.BaseBundle.containsKey(BaseBundle.java:513)
        at android.content.Intent.hasExtra(Intent.java:7848)
        at android.app.Activity.finish(Activity.java:6495)
        at android.app.Activity.finish(Activity.java:6511)
        at com.tencent.shadow.core.runtime.container.GeneratedPluginContainerActivity.superFinish(GeneratedPluginContainerActivity.java:1052)
        at com.tencent.shadow.core.runtime.container.PluginContainerActivity.superFinish(PluginContainerActivity.java:38)
        at com.tencent.shadow.core.runtime.GeneratedPluginActivity.finish(GeneratedPluginActivity.java:81)
        at com.qq.e.ads.ADActivity.onCreate(Unknown Source:131)
        at com.qq.e.ads.RewardvideoPortraitADActivity.onCreate(Unknown Source:0)
        at com.tencent.shadow.core.loader.delegates.ShadowActivityDelegate.onCreate(ShadowActivityDelegate.kt:144)
        at com.tencent.shadow.core.runtime.container.PluginContainerActivity.onCreate(PluginContainerActivity.java:84)
        at android.app.Activity.performCreate(Activity.java:8086)
        at android.app.Activity.performCreate(Activity.java:8074)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1313)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3746)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3952)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2386)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:213)
        at android.app.ActivityThread.main(ActivityThread.java:8169)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.qq.e.comm.plugin.model.RewardADData" on path: DexPathList[[zip file "/data/user/0/com.tencent.shadow.sample.host/files/ShadowPluginManager/UnpackedPlugin/test-dynamic-manager/a4c3dffa5e644543e49f3769547e7b0d/plugin-debug.zip/sample-runtime-debug.apk"],nativeLibraryDirectories=[/data/user/0/com.tencent.shadow.sample.host/files/ShadowPluginManager/UnpackedPlugin/test-dynamic-manager/lib/9CD532B0-6421-4B2E-80A1-31E4ABADD61C_lib, /system/lib64, /system/product/lib64, /hw_product/lib64, /system/product/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at com.tencent.shadow.core.loader.classloaders.PluginClassLoader.loadClass(PluginClassLoader.kt:87)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at java.lang.Class.classForName(Native Method) 
        at java.lang.Class.forName(Class.java:454) 
        at android.os.Parcel.readParcelableCreator(Parcel.java:3014) 
        at android.os.Parcel.readParcelable(Parcel.java:2964) 
        at android.os.Parcel.readValue(Parcel.java:2866) 
        at android.os.Parcel.readArrayMapInternal(Parcel.java:3244) 
        at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:292) 
        at android.os.BaseBundle.unparcel(BaseBundle.java:236) 
        at android.os.BaseBundle.containsKey(BaseBundle.java:513) 
        at android.content.Intent.hasExtra(Intent.java:7848) 
        at android.app.Activity.finish(Activity.java:6495) 
        at android.app.Activity.finish(Activity.java:6511) 
        at com.tencent.shadow.core.runtime.container.GeneratedPluginContainerActivity.superFinish(GeneratedPluginContainerActivity.java:1052) 
        at com.tencent.shadow.core.runtime.container.PluginContainerActivity.superFinish(PluginContainerActivity.java:38) 
        at com.tencent.shadow.core.runtime.GeneratedPluginActivity.finish(GeneratedPluginActivity.java:81) 
        at com.qq.e.ads.ADActivity.onCreate(Unknown Source:131) 
        at com.qq.e.ads.RewardvideoPortraitADActivity.onCreate(Unknown Source:0) 
        at com.tencent.shadow.core.loader.delegates.ShadowActivityDelegate.onCreate(ShadowActivityDelegate.kt:144) 
        at com.tencent.shadow.core.runtime.container.PluginContainerActivity.onCreate(PluginContainerActivity.java:84) 
        at android.app.Activity.performCreate(Activity.java:8086) 
        at android.app.Activity.performCreate(Activity.java:8074) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1313) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3746) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3952) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2386) 
        at android.os.Handler.dispatchMessage(Handler.java:107) 
        at android.os.Looper.loop(Looper.java:213) 
        at android.app.ActivityThread.main(ActivityThread.java:8169) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101) 
2021-02-01 23:34:23.022 6705-6705/com.tencent.shadow.sample.host E/Parcel:  Suppressed: java.lang.ClassNotFoundException: Didn't find class "com.qq.e.comm.plugin.model.RewardADData" on path: DexPathList[[zip file "/data/user/0/com.tencent.shadow.sample.host/files/ShadowPluginManager/UnpackedPlugin/test-dynamic-manager/a4c3dffa5e644543e49f3769547e7b0d/plugin-debug.zip/sample-plugin-app-debug.apk"],nativeLibraryDirectories=[/data/user/0/com.tencent.shadow.sample.host/files/ShadowPluginManager/UnpackedPlugin/test-dynamic-manager/lib/9CD532B0-6421-4B2E-80A1-31E4ABADD61C_lib, /system/lib64, /system/product/lib64, /hw_product/lib64, /system/product/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
        at com.tencent.shadow.core.loader.classloaders.PluginClassLoader.loadClass(PluginClassLoader.kt:81)
                ... 35 more
2021-02-01 23:34:23.022 6705-6705/com.tencent.shadow.sample.host E/Activity:  finish parcel err!
2021-02-01 23:34:23.031 6705-6705/com.tencent.shadow.sample.host D/ActivityThread: add activity client record, r= ActivityRecord{7bc1b8 token=android.os.BinderProxy@8d7bba3 {com.tencent.shadow.sample.host/com.tencent.shadow.sample.plugin.runtime.PluginDefaultProxyActivity}} token= android.os.BinderProxy@8d7bba3
2021-02-01 23:34:23.067 6705-6705/com.tencent.shadow.sample.host D/ActivityThread: Remove activity client record, r= ActivityRecord{7bc1b8 token=android.os.BinderProxy@8d7bba3 {com.tencent.shadow.sample.host/com.tencent.shadow.sample.plugin.runtime.PluginDefaultProxyActivity}} token= android.os.BinderProxy@8d7bba3
2021-02-01 23:34:26.350 6705-6705/com.tencent.shadow.sample.host W/GDT_DOWNLOAD_TH: type=1400 audit(0.0:1117676): avc: granted { write } for pid=6705 name="video" dev="sdcardfs" ino=11886 scontext=u:r:untrusted_app_27:s0:c55,c258,c512,c768 tcontext=u:object_r:sdcardfs:s0 tclass=dir
2021-02-01 23:34:26.350 6705-6705/com.tencent.shadow.sample.host W/GDT_DOWNLOAD_TH: type=1400 audit(0.0:1117677): avc: granted { add_name } for pid=6705 name="30a2b2f659db39554309ba5a815cfba3" scontext=u:r:untrusted_app_27:s0:c55,c258,c512,c768 tcontext=u:object_r:sdcardfs:s0 tclass=dir
2021-02-01 23:34:26.350 6705-6705/com.tencent.shadow.sample.host W/GDT_DOWNLOAD_TH: type=1400 audit(0.0:1117678): avc: granted { create } for pid=6705 name="30a2b2f659db39554309ba5a815cfba3" scontext=u:r:untrusted_app_27:s0:c55,c258,c512,c768 tcontext=u:object_r:sdcardfs:s0:c55,c258,c512,c768 tclass=file
2021-02-01 23:34:36.318 6705-6705/com.tencent.shadow.sample.host W/GDT_IO_THREAD: type=1400 audit(0.0:1117681): avc: granted { write } for pid=6705 name="video" dev="sdcardfs" ino=11886 scontext=u:r:untrusted_app_27:s0:c55,c258,c512,c768 tcontext=u:object_r:sdcardfs:s0 tclass=dir
2021-02-01 23:34:36.318 6705-6705/com.tencent.shadow.sample.host W/GDT_IO_THREAD: type=1400 audit(0.0:1117682): avc: granted { add_name } for pid=6705 name="30a2b2f659db39554309ba5a815cfba3_complete" scontext=u:r:untrusted_app_27:s0:c55,c258,c512,c768 tcontext=u:object_r:sdcardfs:s0 tclass=dir
2021-02-01 23:34:36.318 6705-6705/com.tencent.shadow.sample.host W/GDT_IO_THREAD: type=1400 audit(0.0:1117683): avc: granted { create } for pid=6705 name="30a2b2f659db39554309ba5a815cfba3_complete" scontext=u:r:untrusted_app_27:s0:c55,c258,c512,c768 tcontext=u:object_r:sdcardfs:s0:c55,c258,c512,c768 tclass=file
2021-02-01 23:34:36.318 6705-6705/com.tencent.shadow.sample.host W/GDT_IO_THREAD: type=1400 audit(0.0:1117684): avc: granted { read write open } for pid=6705 path="/storage/emulated/0/Android/data/com.tencent.shadow.sample.host/cache/ShadowPlugin_sample-plugin-app/com_qq_e_download/video/30a2b2f659db39554309ba5a815cfba3_complete" dev="sdcardfs" ino=29263 scontext=u:r:untrusted_app_27:s0:c55,c258,c512,c768 tcontext=u:object_r:sdcardfs:s0 tclass=file
sunshengfei commented 3 years ago

没事了,刚侥幸去看了下,发现优量汇sdk更新了4.332.1202,打扰了