Я работаю над библиотекой/SDK, в которой есть активности/фрагменты, и я хочу использовать привязку данных вместо метода findViewById().

Но я получил это сообщение об ошибке, когда я включил dataBinding-> enabled = true в библиотечном модуле gradle, но не включил в app:gradle модуле.

Это ошибка, которую я получил:

Failed resolution of: Landroidx/databinding/DataBinderMapperImpl;

Didn't find class "androidx.databinding.DataBinderMapperImpl" on path: DexPathList[[zip file "/data/app/io.raychat.raychat_sdk-eNdusNjUCa3sHWzKRK-iqw==/base.apk"],nativeLibraryDirectories=[/data/app/io.raychat.raychat_sdk-eNdusNjUCa3sHWzKRK-iqw==/lib/x86, /system/lib, /system/vendor/lib]]

Пользователи этой библиотеки разные, и я не могу сказать им всем, чтобы они включили привязку данных в модуле app:gradle. что мне делать?

Ответы (1)

После Data Binding Library - Get Started

Вы должны настроить привязку данных для модулей приложения, которые зависят от библиотек, использующих привязку данных, даже если модуль приложения напрямую не использует привязку данных.

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

Вы не рассматривали возможность использования View Binding вместо этого?

2022 WebDevInsider