同一个库的多个版本

时间:2015-09-04 10:05:53

标签: java android gradle dagger

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

3 个答案:

答案 0 :(得分:2)

你不能同时拥有这两者。

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

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

答案 1 :(得分:1)

为什么你不想保留它们?我不认为如果可能,你应该只去一个图书馆。在这里你应该使用最新的一个,因为我认为如果添加最新版本,那么旧版本并不重要。 看看这些链接,如果他们帮助你匕首......

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

答案 2 :(得分:0)

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