我有一个共享模块和一个电视模块。从 更新到 gradle 插件3.2.0后3.0.0,应用程序的更多部分,特别是未从共享模块继承的类,在电视上打开时由于此错误而崩溃:
java.lang.ClassCastException:
com.package.tv.databinding.FragmentDialogGenericBindingImpl cannot be cast to
com.package.shared.databinding.FragmentDialogGenericBinding at
com.package.shared.dialog.GenericDialog.onCreateView(GenericDialog.java:48)
因此,在这种特定情况下,我有:
- 布局目录下共享模块中的一个共享布局文件,称为
fragment_dialog_generic.xml - layout-television 目录下 tv 模块中的一个布局文件,名为
fragment_dialog_generic.xml onCreateView第48 行内的 GenericDialog 类具有:FragmentDialogGenericBinding dialog = DataBindingUtil.inflate(inflater, R.layout.fragment_dialog_generic, container, false);`
直到更新绑定生成正常,现在由于某种原因它不能转换为FragmentDialogGenericBinding.
在共享(库)模块和电视模块中,我都启用了数据绑定、匕首2.16、支持库26.1.0。
从 gradle 插件更新3.0.0到3.2.0我必须更新以下库:
- kotlin 从
1.2.20到1.2.51 - 类路径
io.fabric.tools:gradle:1.25.2到1.25.4 gradle-4.2.1-all.zip至gradle-4.6-all.zip
有谁知道它如何达到无法在默认布局文件上使用电视布局的状态?