【问题标题】:Cannot use Data Binding in other package(library/sdk) except enabling dataBinding in main app gradle module除了在主应用程序 gradle 模块中启用数据绑定外,不能在其他包(库/sdk)中使用数据绑定
【发布时间】:2021-04-08 09:09:22
【问题描述】:

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

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

【问题讨论】:

    标签: android mvvm data-binding


    【解决方案1】:

    截至Data Binding Library - Get Started

    您必须为依赖于使用数据绑定的库的应用模块配置数据绑定,即使该应用模块不直接使用数据绑定。

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

    您是否考虑过改用View Binding

    【讨论】:

    • 是的,这样最终用户不需要在 build:gradle 中启用它,而且编译速度比数据绑定更快。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-10
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 2012-10-08
    • 2014-12-13
    相关资源
    最近更新 更多