Shadow icon indicating copy to clipboard operation
Shadow copied to clipboard

bugly上面偶先的奔溃日志

Open a6685234 opened this issue 4 years ago • 2 comments

java.lang.IllegalStateException:partKey==ky-plugin-take-delivery在map中找不到。此时map:{} 6 com.tencent.shadow.core.loader.ShadowPluginLoader.inject(Unknown Source:98) 7 com.tencent.shadow.core.loader.delegates.ShadowActivityDelegate.onCreate(Unknown Source:77) 8 com.tencent.shadow.core.runtime.container.PluginContainerActivity.onCreate(PluginContainerActivity.java:84) 9 android.app.Activity.performCreate(Activity.java:7136) 10 android.app.Activity.performCreate(Activity.java:7127) 11 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271) 12 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2924) 13 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3079) 14 android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 15 android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 16 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 17 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1836) 18 android.os.Handler.dispatchMessage(Handler.java:106) 19 android.os.Looper.loop(Looper.java:193) 20 android.app.ActivityThread.main(ActivityThread.java:6704) 21 java.lang.reflect.Method.invoke(Native Method) 22 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 23 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)

a6685234 avatar Sep 27 '21 14:09 a6685234

partKey==ky-plugin-take-delivery在map中找不到。此时map:{}

这里的map是已加载插件的partKey到插件的各种数据的map。所以从有partKey但是map为空来看,这是进程重启之后试图恢复之前的Activity的启动过程。

SDK有这样的逻辑来应对这种情况,但是看起来它没生效。 https://github.com/Tencent/Shadow/blob/0e5d9d8d935d296bc40555b07d8396ba539de214/projects/sdk/core/activity-container/src/main/java/com/tencent/shadow/core/runtime/container/PluginContainerActivity.java#L106

你可能需要检查一下你修改什么代码,导致这里有可能出现判断错误。可以Debug一下这里的代码,手工构造一些杀死进程的场景。

shifujun avatar Sep 28 '21 02:09 shifujun

我这里也有同样的偶现FC。 自己模拟测试,先打开插件页面,然后模拟进程退出,isIllegalIntent方法是生效的:

2022-09-22 09:10:59.098 21988-22140/com.samsung.android.app.sreminder E/PluginContainerActivity: illegalIntent elapsedRealtime==772189482

2022-09-22 09:11:07.945 22281-22281/com.samsung.android.app.sreminder E/PluginContainerActivity: illegalIntent savedInstanceState==Bundle[{PROCESS_ID_KEY=772165470, CM_LOADER_BUNDLE=Bundle[mParcelledData.dataSize=2888], LOADER_VERSION=2.1.0, CM_EXTRAS_BUNDLE=Bundle[mParcelledData.dataSize=1184], CM_PART=rewards-sdk-plugin, PLUGIN_OUT_STATE_KEY=Bundle[mParcelledData.dataSize=4000]}] getIntent().getExtras()==Bundle[mParcelledData.dataSize=4416]

上面的是我自己加的log,进程停止前的elapsedRealtime。 猜不到到底是什么场景会FC。统计上是各个OS下都有崩溃。

Linats avatar Sep 22 '22 01:09 Linats