首页 > 解决方案 > 除了在主应用程序 gradle 模块中启用数据绑定外,不能在其他包(库/SDK)中使用数据绑定

问题描述

好吧,我正在开发一个包含活动/片段的库/SDK,我想使用数据绑定而不是 findViewById() 方法。

但是当我在库 gradle 模块中启用 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 模块中启用数据绑定。我该怎么办?

标签: androidmvvmdata-binding

解决方案


数据绑定库开始 - 开始

您必须为依赖于使用数据绑定的库的应用程序模块配置数据绑定,即使应用程序模块不直接使用数据绑定也是如此。

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

您是否考虑过使用视图绑定


推荐阅读