alibaba / ARouter

💪 A framework for assisting in the renovation of Android componentization (帮助 Android App 进行组件化改造的路由框架)
Apache License 2.0
14.44k stars 2.61k forks source link

ARouter::ARouter init logistics center exception! 如何支持多个子模块内初始化不冲突? #809

Closed weiwenqiang closed 3 years ago

weiwenqiang commented 4 years ago

如何支持多个插件内初始化不冲突呢?

因为需要插件化,多个插件内部需要路由初始化,但是插件内部调用初始化程序崩溃,有一个插件内部初始化没有问题,不初始化又不能用,不知道怎么处理,并且虽然有baidumap,但是程序内并没有一个地方引用,却报ARouter$$Providers$$libbaidumap,不知道为何。

Process: com.zzz.myemergencyclientnew, PID: 9933 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.zzz.myemergencyclientnew/com.zzz.myemergencyclientnew.host.SingleTaskContainerActivity}: java.lang.RuntimeException: com.alibaba.android.arouter.exception.HandlerException: ARouter::ARouter init logistics center exception! [com.alibaba.android.arouter.routes.ARouter$$Providers$$libbaidumap] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2946) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3081) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:201) at android.app.ActivityThread.main(ActivityThread.java:6815) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873) Caused by: java.lang.RuntimeException: com.alibaba.android.arouter.exception.HandlerException: ARouter::ARouter init logistics center exception! [com.alibaba.android.arouter.routes.ARouter$$Providers$$libbaidumap] at com.tencent.shadow.core.loader.delegates.ShadowActivityDelegate.onCreate(ShadowActivityDelegate.kt:146) at com.tencent.shadow.core.runtime.container.PluginContainerActivity.onCreate(PluginContainerActivity.java:84) at android.app.Activity.performCreate(Activity.java:7224) at android.app.Activity.performCreate(Activity.java:7213) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2926) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3081)  at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)  at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)  at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831)  at android.os.Handler.dispatchMessage(Handler.java:106)  at android.os.Looper.loop(Looper.java:201)  at android.app.ActivityThread.main(ActivityThread.java:6815)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)  Caused by: com.alibaba.android.arouter.exception.HandlerException: ARouter::ARouter init logistics center exception! [com.alibaba.android.arouter.routes.ARouter$$Providers$$libbaidumap] at com.alibaba.android.arouter.core.LogisticsCenter.init(LogisticsCenter.java:208) at com.alibaba.android.arouter.launcher._ARouter.init(_ARouter.java:62) at com.alibaba.android.arouter.launcher.ARouter.init(ARouter.java:41) at com.zzz.myemergencyclientnew.PublishIntellReportActivity.initView(PublishIntellReport.kt:178) at com.zzz.myemergencyclientnew.base.DataBindingActivity.onCreate(DataBindingActivity.java:30) at com.tencent.shadow.core.loader.delegates.ShadowActivityDelegate.onCreate(ShadowActivityDelegate.kt:143) at com.tencent.shadow.core.runtime.container.PluginContainerActivity.onCreate(PluginContainerActivity.java:84)  at android.app.Activity.performCreate(Activity.java:7224)  at android.app.Activity.performCreate(Activity.java:7213)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2926)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3081)  at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)  at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)  at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831)  at android.os.Handler.dispatchMessage(Handler.java:106)  at android.os.Looper.loop(Looper.java:201)  at android.app.ActivityThread.main(ActivityThread.java:6815)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873) 

zhi1ong commented 3 years ago

1.5.2 支持动态注册路由表,不需要每个模块都初始化