插件中想要通过xml使用宿主中的自定义view,通过白名单方式配置了这个类,由于view包含了宿主中的资源layout_label_view。会导致插件加载这个view报错。请问有什么好的方式实现吗?
Caused by: android.view.InflateException: Binary XML file line #8 in com.example.myapplication:layout/layout_label_view: Binary XML file line #8 in com.example.myapplication:layout/layout_label_view: Error inflating class TextView
Caused by: android.view.InflateException: Binary XML file line #8 in com.example.myapplication:layout/layout_label_view: Error inflating class TextView
Caused by: java.lang.UnsupportedOperationException: Can't convert to ComplexColor: type=0x1
at android.content.res.ResourcesImpl.loadComplexColorForCookie(ResourcesImpl.java:1239)
at android.content.res.ResourcesImpl.loadComplexColorFromName(ResourcesImpl.java:1115)
at android.content.res.ResourcesImpl.loadColorStateList(ResourcesImpl.java:1194)
at android.content.res.Resources.loadColorStateList(Resources.java:1150)
at android.content.res.TypedArray.getColorStateList(TypedArray.java:599)
at android.widget.TextView.readTextAppearance(TextView.java:4025)
at android.widget.TextView.(TextView.java:1101)
at android.widget.TextView.(TextView.java:1005)
at android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:87)
at android.support.v7.widget.AppCompatTextView.(AppCompatTextView.java:83)
at android.support.v7.app.AppCompatViewInflater.createTextView(AppCompatViewInflater.java:177)
at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:102)
at android.support.v7.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1266)
at android.support.v7.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1316)
at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:253)
at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1120)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1050)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1014)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1193)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1154)
at android.view.LayoutInflater.inflate(LayoutInflater.java:696)
at android.view.LayoutInflater.inflate(LayoutInflater.java:548)
at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
at com.example.gametest.game.LabelView.init(LabelView.java:53)
at com.example.gametest.game.LabelView.(LabelView.java:31)
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at android.view.LayoutInflater.createView(LayoutInflater.java:871)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1063)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1014)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1193)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1154)
at android.view.LayoutInflater.inflate(LayoutInflater.java:696)
at android.view.LayoutInflater.inflate(LayoutInflater.java:548)
at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
2022-07-04 16:02:50.787 7207-7207/com.example.myapplication E/AndroidRuntime: at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at com.example.testplugin.MainActivity.onCreate(MainActivity.java:19)
at com.tencent.shadow.core.loader.delegates.ShadowActivityDelegate.onCreate(Unknown Source:352)
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)
我记得demo中的处理方法是,宿主创建View对象实例,传递给插件 插件使用代码动态add到布局中
我记得demo中的处理方法是,宿主创建View对象实例,传递给插件 插件使用代码动态add到布局中
如果要动态修改view的一些属性,通过findViewById找不到这个view,另外在插件中动态修改资源也不行