Android При привязке данных не удается создать поля stati c в BR. java для переменных из внешней библиотеки - PullRequest
0 голосов
/ 23 марта 2020

Я создал библиотеку 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'.

Любая помощь? Спасибо!

1 Ответ

0 голосов
/ 29 марта 2020

Я решил проблему. Проблема заключалась в том, что имена пакетов приложения и библиотеки были одинаковыми.

Когда я изменил имя пакета в библиотеке, оно начало работать.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...