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