在我的Android项目中,我使用的是一个jar文件库。 我将它包含在依赖项部分中,如下所示:
dependencies {
...
compile files('libs/thethirdpartylibrary.jar')
...
}
我也想使用okhttp库,我包括这样的:
compile ('com.squareup.okhttp:okhttp:2.7.5')
(这个特殊版本的okhttp取决于okio 1.6.0。)
问题是第三方jar库依赖于okio v0.9.0而更糟糕的是捆绑它。
结果,我在构建时遇到了一个dex冲突错误。
我能够通过手动从jar文件中删除okio来解决这个问题,这似乎有效。但我想知道是否有办法在gradle中做到这一点。
我的问题:我可以在构建时使用gradle从包含的jar中删除捆绑的,可传递的(< - 我希望我正确地使用这个词)依赖性吗?
答案 0 :(得分:24)
使用以下行排除依赖项中的组。
1. configurations {
all*.exclude group: 'com.android.support', module: 'support-v4'
}
2.dependencies {
compile 'com.android.support:support-v4:13.0.+'
compile ("com.xxx:xxx-commons:1.+") {
exclude group: 'junit', module: 'junit'
}
}
3. configurations {
runtime.exclude group: "org.slf4j", module: "slf4j-log4j12"
}
试试这个。 For more detail
答案 1 :(得分:1)
根据此处的讨论https://groups.google.com/forum/#!topic/adt-dev/g1AiJM7PeVs,您想要做的事情是不可能的。
其他答案中建议的语法是针对“普通”Maven依赖项。