插件activity继承宿主的baseActivity
项目把部分页面拆分成插件,由于要共用宿主的功能,插件activity继承了宿主module中的baseActivity,但是报错 Caused by: java.lang.RuntimeException: java.lang.ClassCastException: com.example.testplugin.MainActivity cannot be cast to com.tencent.shadow.core.runtime.ShadowActivity at com.tencent.shadow.core.loader.delegates.ShadowActivityDelegate.onCreate(Unknown Source:361) at com.tencent.shadow.core.runtime.container.PluginContainerActivity.onCreate(PluginContainerActivity.java:84) at android.app.Activity.performCreate(Activity.java:7894) at android.app.Activity.performCreate(Activity.java:7883) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1353) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3655) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3835) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2291) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:230) at android.app.ActivityThread.main(ActivityThread.java:8024) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:526) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034)
插件用的activity、service都是经过处理的,被替换成了插件的ShadowActivity、ShadowService。所以要把这个baseactivity单独给插件提供一份,让插件打包的时候替换成插件能识别的。
这种用法和Shadow的设计相违背,或者说有这种需求在插件化选型上就不应该选型Shadow
Shadow的设计是免安装的,插件有自己独立的运行环境,包括所有依赖
插件用的activity、service都是经过处理的,被替换成了插件的ShadowActivity、ShadowService。所以要把这个baseactivity单独给插件提供一份,让插件打包的时候替换成插件能识别的。
你好,这种问题我也遇到了。能麻烦说一下具体解决方法吗?感谢感谢!