【问题标题】:Multiple versions of same library同一个库的多个版本
【发布时间】:2015-09-04 10:05:53
【问题描述】:

我有项目 A,它曾经有模块 A1,使用 dagger v. 1.2.2。 现在我想添加到项目 A,模块 A2,它依赖于 dagger v. 2.0。 但我不能,因为这两个匕首库有冲突。我可以在不同的 android 模块中以某种方式处理多个版本的库吗?

【问题讨论】:

    标签: java android gradle dagger


    【解决方案1】:

    你不能两者兼得。

    您需要从依赖项中排除冲突的库:

    configurations {
        all*.exclude group: 'com.google.android', module: 'support-v4'
    }
    
    dependencies {
        compile 'com.android.support:support-v4:13.0.0'
    }
    

    发件人:https://github.com/stephanenicolas/robospice/issues/161

    dependencies {
        compile("org.gradle.test.excludes:api:1.0") {
            exclude module: 'shared'
        }
    }
    

    发件人:https://docs.gradle.org/current/userguide/dependency_management.html#52.4.7

    【讨论】:

      【解决方案2】:

      您需要排除 dagger v. 1.2.2 库并让 dagger v. 2.0.后者通常会向后兼容。查看有关如何排除特定依赖项的 gradle 文档。 https://docs.gradle.org/current/userguide/dependency_management.html

      【讨论】:

      • dagger 2.0 和 1.2.2 兼容注释回
      【解决方案3】:

      你为什么不想保留他们两个?我认为如果可能的话,你应该只去一个图书馆。在这里你应该使用最新的,因为我认为如果添加了最新的,旧的并不重要。 看看这些链接是否对你有帮助...

      Dagger dependencies when overriding graph with mock module causes NoClassDefFoundError

      How to use dagger in a android library project

      Dagger dependencies when overriding graph with mock module causes NoClassDefFoundError

      【讨论】:

      • 因为我有使用 1.2.2 的工作项目。我只想编写该项目将使用的新的独立库。我可以将这个独立库配置为不与我现有的项目冲突吗?
      • 不确定,当您同时使用它们时,是否会在构建或运行应用程序时出错?
      • 在构建时。我不想在模块 A2 中使用 1.2.2。我希望模块 A1 使用 1.2.2,模块 A2 使用 2.0。
      • 对不起兄弟,我不确定我是否可以回答,但请查看已编辑答案中的链接...
      猜你喜欢
      • 2014-04-23
      • 1970-01-01
      • 1970-01-01
      • 2017-01-29
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多