使用DataBinding的<include>标记的java.lang.ClassCastException

时间:2019-03-06 13:31:23

标签: android android-layout android-databinding

我有以下设置。 main模块取决于search模块,而commonui模块取决于。这三个模块都使用数据绑定。在commonui模块内部,我有toolbar.xml文件。此文件在search文件的fragment.xml模块内的<include>模块中使用<include android:id="@+id/fem_toolbar" layout="@layout/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content"/> 标签,如下所示:

E/CrashLogHandler: Stack trace: java.lang.RuntimeException: Unable to start activity ComponentInfo{xx.xxxxx.debug/xx.xxxxx.search.Activity}: java.lang.ClassCastException: xx.xxxxx.databinding.ToolbarBindingImpl cannot be cast to xx.xxxxx.common.ui.databinding.ToolbarBinding
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
        at android.os.Handler.dispatchMessage(Handler.java:105)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6541)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

运行应用程序后,使用此xml导航到片段时,出现以下崩溃:

{{1}}

有人知道发生了什么吗? 我还看到了与此库类似的问题:https://github.com/heinrichreimer/material-intro/issues/256

1 个答案:

答案 0 :(得分:0)

我终于弄清楚我的设置出了什么问题。 我正在将应用程序中与搜索相关的部分移至search模块中。我移动了SearchActivityAndroidManifest.xml定义以外的所有内容。 因此由于某种原因,当这样定义活动时,数据绑定的行为很奇怪。 只需移动活动的定义即可search模块的AndroidManifest.xml解决了该问题。