android - 除了在主应用程序 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 模块中启用数据绑定。我该怎么办?
解决方案
您必须为依赖于使用数据绑定的库的应用程序模块配置数据绑定,即使应用程序模块不直接使用数据绑定也是如此。
因此,当您开发一个库并且您不能强制您的库客户端启用数据绑定时,您根本不应该使用它。
您是否考虑过使用视图绑定?
推荐阅读
- php - Laravel - Nexmo 没有在 .ENV 文件中获取凭据
- javascript - 将文本转换为小数字javascript
- angular - RxJS - 条件 Concat 并合并响应中的对象
- javascript - 任意嵌套对象中的递归计数
- java - Java中从头开始的广度优先搜索
- blockchain - 我们如何知道区块链中每个账户的金额?
- reactjs - ECONNREFUSED - 代理来自 React 的 API 请求
- visual-studio-code - VSCode 任务,npm 脚本的用户输入
- ijson - ijson.common.IncompleteJSONError:词法错误:json 文本中的无效字符
- python - 带有 Flask 的 SQLALchemy 中的静态模型实例(夹具)