导入依赖项后,我在库中发生了冲突:
compile 'com.google.android.gms:play-services:11.4.2'
这是在此行报告错误的行:
compile 'com.android.support:appcompat-v7:26.1.0'
这是错误:
All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes).
Found version 26.1.0, 25.2.0
如果我改变了行
compile 'com.android.support:appcompat-v7:26.1.0'
为:
compile 'com.android.support:appcompat-v7:25.2.0'
现在我
This support library should not use a different version (25) than the compile SDK version (26).
发生了什么事。这就像某种循环错误。
我该如何解决?
答案 0 :(得分:0)
在其他地方(可能在依赖项中),您正在使用版本25.2.0编译Android支持库的另一部分。如果要使用编译SDK版本26,则需要将对com.android.support的所有引用更新为版本26.1.0。
答案 1 :(得分:0)
正如错误所说:
所有com.android.support库必须使用完全相同的版本 规范(混合版本可能导致运行时崩溃)。
发现版本26.1.0,25.2.0
这是因为您有两个支持库26.1.0
和25.2.0
。有一个或多个库使用不同版本的支持库。因此,您需要找到它并在依赖项中使用exclude。您可以通过在Linux shell中的项目中执行以下命令来查找依赖关系树来找到它们(如果您使用的是Windows,请使用gradlew.bat):
./gradlew app:dependencies
找到后,用以下内容从中排除支持库:
compile(com.sample.library) {
exclude group: 'com.android.support'
// exclude the support library that is clashing.
exclude module: 'appcompat-v7'
exclude module: 'support-v4'
}
然后,您需要添加支持库以替换先前依赖项中的排除版本:
compile 'com.android.support:appcompat-v7:26.1.0'