Я создал библиотеку Android (aar), которая содержит некоторые фрагменты, использующие привязку данных, используя тег <data>
внутри xml компонентов макета. Например:
<?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
, который содержит поле stati c для каждой переменной, объявленной для привязки.
Когда я использую aar в качестве зависимости в приложении Android, вместо этого BR.java
перестраивается и не содержит полей stati c для переменных, объявленных в родительской библиотеке. Это не проблема во время компиляции. Но во время выполнения фрагменты из библиотеки обращаются к полям stati c, которые отсутствуют в BR дочернего приложения и вызывают cra sh.
Как мне удается встроить дочернее приложение stati c поля также для привязок данных, объявленных в родительской библиотеке?
Я включил привязку данных в модулях приложения и библиотеки:
dataBinding {
enabled = true
}
Я использую classpath 'com.android.tools.build:gradle:3.6.1'
.
Любая помощь? Спасибо!