更新到 android studio 2.3 后,我收到此错误消息。 我知道这只是一个提示,因为应用程序运行正常,但这真的很奇怪。
All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 25.1.1, 24.0.0. Examples include com.android.support:animated-vector-drawable:25.1.1 and com.android.support:mediarouter-v7:24.0.0
我的毕业生:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:25.1.1'
compile 'com.android.support:support-v4:25.1.1'
compile 'com.android.support:design:25.1.1'
compile 'com.android.support:recyclerview-v7:25.1.1'
compile 'com.android.support:cardview-v7:25.1.1'
compile 'com.google.android.gms:play-services-maps:10.2.0'
compile 'com.google.android.gms:play-services:10.2.0'
compile 'io.reactivex.rxjava2:rxjava:2.0.1'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.jakewharton:butterknife:8.4.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
compile 'com.blankj:utilcode:1.3.6'
compile 'com.orhanobut:logger:1.15'
compile 'com.facebook.stetho:stetho:1.4.2'
provided 'com.google.auto.value:auto-value:1.2'
annotationProcessor 'com.google.auto.value:auto-value:1.2'
annotationProcessor 'com.ryanharter.auto.value:auto-value-parcel:0.2.5'
compile 'com.mikepenz:iconics-core:2.8.2@aar'
compile('com.mikepenz:materialdrawer:5.8.1@aar') { transitive = true }
compile 'com.mikepenz:google-material-typeface:2.2.0.3.original@aar'
compile 'me.zhanghai.android.materialprogressbar:library:1.3.0'
compile 'com.github.GrenderG:Toasty:1.1.1'
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.8.0'
compile 'com.github.MAXDeliveryNG:slideview:1.0.0'
compile 'com.facebook.fresco:fresco:1.0.1'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.google.maps.android:android-maps-utils:0.4.4'
compile 'com.github.jd-alexander:library:1.1.0'
}
最佳答案
您可以使用以下解决方案之一解决此问题:
更新:
从 Android Studio 3.0 开始,它变得更加容易,因为它现在显示了一个更有帮助的提示,所以我们只需要遵循这个提示。
例如:
All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 27.0.2, 26.1.0. Examples include com.android.support:animated-vector-drawable:27.0.2 and com.android.support:customtabs:26.1.0
there are some combinations of libraries, or tools and libraries, that are incompatible, or can lead to bugs. One such incompatibility is compiling with a version of the Android support libraries that is not the latest version (or in particular, a version lower than your targetSdkVersion.)
解决方案:
使用旧版本显式添加库,但使用新版本号。
在我的情况下 com.android.support:customtabs:26.1.0
所以我需要添加:
implementation "com.android.support:customtabs:27.0.2"
ie:从第二项中获取库,并使用第一项中的版本号实现它。
注意:不要忘记现在按同步,以便 gradle 可以重建依赖关系图并查看是否还有更多冲突。
说明:
您可能会对错误消息感到困惑,因为不要使用 customtabs
所以我怎么会有冲突!
好吧..您没有直接使用它,但是您的一个库在内部使用了旧版本的 customtabs
,因此您需要直接请求它。
如果您想知道您的哪些库负责旧版本,并且可能要求作者更新他的库,运行 Gradle 依赖关系报告,请参阅旧答案以了解如何。
注意这一点
旧答案:
灵感来自 CommonsWare answer :
运行 Gradle 依赖关系报告以查看您的完整树 依赖是。
从那里,您将看到您的哪个库要求使用不同版本的 Android 支持库。 无论它要求什么,您都可以直接使用 25.2.0 版本或使用 Gradle 的其他冲突解决方法来获得相同的版本。
更新:
从 gradle 插件版本开始:3.0 compile
已被 implementation
或 api
取代,参见 this answer区别。
因此改用:
./gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath
或者对于windows cmd:
gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath
并搜索有冲突的版本。
对我来说,删除 com.google.android.gms:play-services:10.2.0
并且仅包括 com.google.android.gms:play-services-location:10.2.0
和 com.google.android.gms:play-services-maps:10.2。 0
因为它们是我使用的仅有的两个播放服务。
我认为 gms:play-services
依赖于支持库的一些旧组件,因此我们需要自己显式添加它们。
对于 AS 3.0 更早版本。
运行:
./gradlew -q dependencies <module-name>:dependencies --configuration implementation
例子:
./gradlew -q dependencies app:dependencies --configuration implementation
如果有人知道新 gradle 插件中的更好方法,请告诉我。
关于android - 所有 com.android.support 库必须使用完全相同的版本规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42374151/