我的应用使用这些依赖项
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.android.support:design:22.2.1'
compile 'com.google.android.gms:play-services:7.0.0'
compile 'com.google.code.gson:gson:2.2.4'
当我导入搜索弧库时,它使用不同的依赖项
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:design:23.2.1'
compile project(':SeekArc_library')
我该如何解决这个问题?
答案 0 :(得分:2)
我假设您使用的是标准的gradle构建工具和Android Studio。
以下是针对冲突依赖项问题的推荐解决方案。例如,假设您已声明对com.google.guava
版本X
的显式依赖,但其他一些依赖关系正在使com.google.guava
版本X-1
具有内部依赖性。
在dependencies
文件中的build.gradle
子句之后添加以下内容。
configurations {
all*.exclude group: 'com.google.guava', module: 'guava-jdk5'
}
有关详细信息,请参阅https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.Configuration.html
注意:还有另一种方法,您可以选择性地从每个compile
子句中排除某些依赖项,但不建议这样做,因为它不能很好地扩展。为了完整性,我会在这里包括它,但我不推荐它。使用与上述相同的示例
compile(group: 'com.google.guava', name: 'guava', version: 'X')
compile(group: 'com.some.other.dependency', name: 'foo', version: 'bar')
{
// exclude transitive dependency since we want to depend on version `X` declared above
exclude(group: 'com.google.guava', module: 'guava-jdk5')
}
答案 1 :(得分:1)
我的应用程序和新添加的库依赖项存在冲突。我更改了app编译&将sdk构建到api 23并添加" useLibrary' org.apache.http.legacy'"。现在问题解决了。
答案 2 :(得分:0)
顶级应用程序库依赖项将覆盖较低级别的库依赖项。您不需要明确覆盖。请参阅Android构建文档
答案 3 :(得分:0)
如果要排除正在使用的库的依赖性,可以
compile 'yourLibraryName'{
exclude module: 'appcompat-v7'
exclude module: 'appcompat-v7'
}
确保您提供自己的版本,否则您将获得运行时错误