参见英文答案 > All com.android.support libraries must use the exact same version specification 54个
当我今天将我的android工作室从版本2.2.3更新到2.3时,突然在我的build.gradle中在依赖项的第一个编译行中出现此错误
(无论哪个依赖都会出现在第一位,但它总会给我这个错误):
All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 25.2.0, 24.0.0. Examples include com.android.support:animated-vector-drawable:25.2.0 and com.android.support:mediarouter-v7:24.0.0
我查看了整个项目,我找不到任何版本24.0.0的用法(我用ctrl shift F查看整个项目中的搜索)
这是我的build.gradle:
android {
compileSdkVersion 25
buildToolsversion '25.0.2'
useLibrary 'org.apache.http.legacy'
defaultConfig {
minSdkVersion 16
targetSdkVersion 25
versionName "1.0"
versionCode 1
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
debug {
minifyEnabled true
shrinkResources true
}
}
dexOptions {
javaMaxHeapSize "4g"
}
}
dependencies {
compile filetree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:25.2.0'
compile 'com.google.android.gms:play-services:+'
compile 'com.squareup:otto:1.3.8'
compile 'com.mcxiaoke.volley:library-aar:1.0.0'
compile 'com.android.support:multidex:1.0.1'
}
解决方法:
i have looked through my entire project and i can not find any usage of versions 24.0.0
它是来自您的其他依赖项之间的传递依赖.
首先,修复build.gradle文件中的其他问题,因为它们也可以解决此问题:
>不要用于库版本.使用特定版本.
>不要使用播放服务.使用所需的Play Services SDK特定部分的特定依赖项.播放服务带来了所有Play服务,使您的应用程序比它需要的大得多,并且大大减慢了构建时间.
>将com.mcxiaoke.volley替换为官方Volley神器(com.android.volley:volley:1.0.0)
如果这些都没有解决问题,您可以运行Gradle依赖关系报告以查看完整的依赖关系树.从那里,您将看到您的哪个库要求提供不同版本的Android支持库.无论它要求什么,您可以直接使用25.2.0版本请求它,或使用Gradle的其他冲突解决方法来安排获得相同的版本.