【问题标题】:How can gradle resolve the same lib with different version twice, and use both at runtime?gradle 如何两次解析不同版本的同一个库,并在运行时同时使用?
【发布时间】:2020-10-30 03:25:01
【问题描述】:

我有一个具有多个工件依赖项的应用程序。这些工件也依赖于它们自身。

所以我可以有一个依赖树。

   ___ B
A         \
    _______ C

假设 A 依赖于 B 和 C,B 也依赖于 C。

B 取决于 C:1.0.1 A 依赖于 C:1.0.1.1

我希望在编译和运行我的应用程序时,只使用更高版本。然而这不会发生。

当我运行我的应用程序并在主 A 应用程序流程中调试 C 类时,它使用较新的 C 版本,但是当 A 调用 B 而 B 又调用 C 时,它使用旧版本。

我不希望同一个类版本在项目中出现两次。这怎么可能?为什么 gradle 不按照它应该做的那样只采用最新版本。

aar 依赖解析两次:

【问题讨论】:

    标签: android maven android-studio gradle gradle-dependencies


    【解决方案1】:

    解决了,

    问题是严重的依赖不匹配。此外,常量(例如在 kotlin 中使用 const val)被保存为 compile 值,而不是引用引用库中的实际常量(例如使用 val)。

    如果您需要通过仅更新库中的常量文件来更改应用程序的行为,请确保未声明常量,而是使用通过 get 方法访问的非变量值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      相关资源
      最近更新 更多