【发布时间】:2015-09-04 10:05:53
【问题描述】:
我有项目 A,它曾经有模块 A1,使用 dagger v. 1.2.2。 现在我想添加到项目 A,模块 A2,它依赖于 dagger v. 2.0。 但我不能,因为这两个匕首库有冲突。我可以在不同的 android 模块中以某种方式处理多个版本的库吗?
【问题讨论】:
标签: java android gradle dagger
我有项目 A,它曾经有模块 A1,使用 dagger v. 1.2.2。 现在我想添加到项目 A,模块 A2,它依赖于 dagger v. 2.0。 但我不能,因为这两个匕首库有冲突。我可以在不同的 android 模块中以某种方式处理多个版本的库吗?
【问题讨论】:
标签: java android gradle dagger
你不能两者兼得。
您需要从依赖项中排除冲突的库:
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
【讨论】:
您需要排除 dagger v. 1.2.2 库并让 dagger v. 2.0.后者通常会向后兼容。查看有关如何排除特定依赖项的 gradle 文档。 https://docs.gradle.org/current/userguide/dependency_management.html
【讨论】:
你为什么不想保留他们两个?我认为如果可能的话,你应该只去一个图书馆。在这里你应该使用最新的,因为我认为如果添加了最新的,旧的并不重要。 看看这些链接是否对你有帮助...
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
【讨论】: