不能在其他包(library/sdk)中使用数据绑定,除了在主应用 gradle 模块中启用数据绑定

Cannot use Data Binding in other package(library/sdk) except enabling dataBinding in main app gradle module

嗯,我正在开发一个 library/SDK,它有 activities/fragments,我想使用数据绑定而不是 findViewById() 方法。

但是当我在 library gradle module 中启用 dataBinding-> enabled = true 时收到此错误消息,但是 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 模块中启用数据绑定。我该怎么办?

截至 Data Binding Library - Get Started

You must configure data binding for app modules that depend on libraries that use data binding, even if the app module doesn't directly use data binding.

所以当你开发一个库并且你不能强制你的库客户端启用数据绑定时,你根本不应该使用它。

您考虑过使用 View Binding 吗?