java.lang.ClassCastException для тега <include>с использованием DataBinding - PullRequest
2 голосов
/ 06 марта 2019

У меня есть следующие настройки. Модуль 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"/>

После запуска приложения, при переходе к фрагменту с этим xml, я получаю следующее падение:

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)

Кто-нибудь имеет представление о том, что происходит? Я также видел похожую проблему с этой библиотекой: https://github.com/heinrichreimer/material-intro/issues/256

1 Ответ

0 голосов
/ 07 марта 2019

Я наконец понял, что не так с моей настройкой. Я перемещал части приложения, связанные с поиском, в модуль search. Я переместил все, кроме определения SearchActivity в AndroidManifest.xml. Поэтому по какой-то причине привязка данных ведет себя странно, когда активность определяется следующим образом. Простое перемещение определения деятельности делает search модуля AndroidManifest.xml решающим проблему.

...