我通过使用xml布局组件内的<data>
标签,创建了一个Android库(aar),其中包含一些利用数据绑定的片段。例如:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="type"
type="String" />
<variable
name="letter"
type="String" />
<variable
name="color"
type="Integer" />
<variable
name="confirmTaskButtonListener"
type="android.view.View.OnClickListener" />
</data>
<ScrollView>
...
</ScrollView>
</layout>
[当我组装aar时,我可以在生成类下正确看到BR.java
,其中每个声明要绑定的变量都包含一个静态字段。
当我在Android应用程序中将aar用作依赖项时,会重建BR.java
,它不包含父库中声明的变量的静态字段。在编译时这不是问题。但是,在运行时,库中的片段引用了子应用程序的BR中不存在的静态字段,并导致崩溃。
如何在父库中声明的数据绑定中也设法在子应用程序静态字段中构建?
我在应用程序和库模块中都启用了数据绑定:
dataBinding {
enabled = true
}
我正在使用classpath 'com.android.tools.build:gradle:3.6.1'
。
有帮助吗?谢谢!
我已经解决了这个问题。问题是应用程序和库的程序包名称相同。
我在库上更改了程序包名称后,它开始工作。
谢谢!