Android 不同模块中具有相同布局的数据绑定
Android databinding with same layout in different modules
假设我有两个 android 模块
模块A
- HelloWorld.Xml
模块B
- HelloWorld.Xml
注意我在不同的模块中有相同的 xml 布局。
现在将生成两个项目绑定,它们也将正确保存在相应的模块中
模块A
- HelloWorld.Xml
- HelloWorldItemBinding.java
模块B
- HelloWorld.Xml
- HelloWorldItemBinding.java
然而,当我们登陆 ModuleB 的 HelloWorld.xml 时,这会编译,我们会收到以下错误
无法将 ModuleA.HelloWorldItemBinding 转换为 ModuleB.HelloWorldItemBinding。
我知道这是因为项目的模块实际上是在编译时合并的,但是我仍然不明白,当两个绑定文件实际上已经在构建时创建时,为什么 android 有问题找到合适的?
此外,我在官方文档
中找不到关于多个模块中数据绑定的任何 link 警告
默认情况下,根据布局文件的名称生成绑定 class,但您可以设置自定义绑定 class 名称或完整包名称以避免冲突。
模块A
<data class="HelloWorldModuleA">
…
</data>
模块B
<data class="HelloWorldModuleB">
…
</data>
这里是官方info
假设我有两个 android 模块
模块A
- HelloWorld.Xml
模块B
- HelloWorld.Xml
注意我在不同的模块中有相同的 xml 布局。
现在将生成两个项目绑定,它们也将正确保存在相应的模块中
模块A
- HelloWorld.Xml
- HelloWorldItemBinding.java
模块B
- HelloWorld.Xml
- HelloWorldItemBinding.java
然而,当我们登陆 ModuleB 的 HelloWorld.xml 时,这会编译,我们会收到以下错误
无法将 ModuleA.HelloWorldItemBinding 转换为 ModuleB.HelloWorldItemBinding。
我知道这是因为项目的模块实际上是在编译时合并的,但是我仍然不明白,当两个绑定文件实际上已经在构建时创建时,为什么 android 有问题找到合适的?
此外,我在官方文档
中找不到关于多个模块中数据绑定的任何 link 警告默认情况下,根据布局文件的名称生成绑定 class,但您可以设置自定义绑定 class 名称或完整包名称以避免冲突。
模块A
<data class="HelloWorldModuleA">
…
</data>
模块B
<data class="HelloWorldModuleB">
…
</data>
这里是官方info