1

我有一个共享模块和一个电视模块。从 更新到 gradle 插件3.2.03.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.03.2.0我必须更新以下库:

  • kotlin 从1.2.201.2.51
  • 类路径io.fabric.tools:gradle:1.25.21.25.4
  • gradle-4.2.1-all.zipgradle-4.6-all.zip

有谁知道它如何达到无法在默认布局文件上使用电视布局的状态?

4

0 回答 0