所有com.android.support库必须使用完全相同的版本规范

更新到Android Studio 2.3后,我收到了此错误消息。我知道这只是一个提示,因为应用程序正常运行,但这真的很奇怪。

所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。找到版本25.1.1、24.0.0。示例包括com.android.support:动画向量绘图:25.1.1和com.android.support:Mediaroutter-v7:24.0.0

在此处输入图片描述

我的gradle:

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'}
388933 次浏览

您已经定义了使用版本24.0.0而不是25.1.1编译的任何其他依赖项。请将所有依赖项的版本设置为与25.1.1相同。

您可以使用以下解决方案之一解决此问题:

更新时间:

从Android Studio 3.0开始,它变得容易得多,因为它现在显示了一个更有用的提示,所以我们只需要遵循这个提示。
例如:1]1

所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。找到版本27.0.2、26.1.0。示例包括com.android.support:动画矢量绘图:27.0.2和com.android.support:自定义标签:26.1.0

有一些库的组合,或者工具和库的组合,那是不兼容的,或者可能导致错误。其中一种不兼容性是使用不支持的Android支持库版本进行编译最新版本(或特别是低于您的版本)目标dk版本。)

解决方案:
使用旧版本显式添加库,但使用新版本号。
在我的情况下com.android.support:customtabs:26.1.0所以我需要添加:

(静态编程语言构建脚本)

implementation("com.android.support:customtabs:27.0.2")

(Groovy构建脚本)

implementation "com.android.support:customtabs:27.0.2"

即:从第二个项目中获取库,并使用第一个项目的版本号实现它。

注意:不要忘记现在按sync,以便gradle可以重建依赖关系图并查看是否还有更多冲突。

说明:
您可能会对错误消息感到困惑,因为不要使用customtabs,所以我怎么会有冲突!!
嗯…你没有直接使用它,但是你的一个库在内部使用了旧版本的customtabs,所以你需要直接要求它。

如果您想知道哪个库负责旧版本,并且可能要求作者更新他的库,请运行Gradle依赖报告,请参阅旧答案以了解如何。

注意这


老答案:

灵感来自常见问题解答

运行Gradle依赖报告以查看您的完整树依赖关系是。

从那里,您将看到您的哪个库要求不同版本的Android支持库。无论它要求什么,你都可以直接用25.2.0版本或使用Gradle的其他冲突解决方法获得相同的版本。


更新时间:

从gradle插件版本开始:3.0compile已被implementationapi取代,请参阅这个答案了解差异。

因此使用:

./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.0com.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插件更好的方法,请让我知道。

打开项目的外部库,你会看到一些库仍然使用以前的版本,尽管你没有提到这些库,所以我的建议是只使用特定的库版本来解决你的问题。

  1. 转到文件系统上的project/.idea/libraries文件夹,查看哪些库不同。
  2. 您必须手动将这些具有相同版本的库包含在build.gradle文件中。
  3. 然后,同步您的项目。

例如:

compile 'com.android.support:appcompat-v7:25.2.0'
// Wrong library version found on 1st pointcompile 'com.android.support:customtabs:25.2.0'

我在更新到Android Studio 2.3后遇到了完全相同的问题

将这一行添加到依赖项解决了我的问题:

compile 'com.android.support:customtabs:25.2.0'

我设法通过添加来编译(不是很干净)

图片描述

对于所有情况,不仅仅是这些版本或库:

请注意小信息窗口,其中显示了一些关于错误的信息,上面写着你需要修改和添加的例子

在这种情况下:

找到版本25.1.1、24.0.0。示例包括com.android.support:动画矢量绘图:25.1.1和com.android.support: media arout-v7:24.0.0

com.android.support:动画矢量绘图:25.1.1

是版本25.1.1,您的

com.android.support: Mediarout-v7:24.0.0

是版本24.0.0,因此您必须添加具有相同版本的media:

com.android.support:mediarouter-v7:25.1.1

并对小信息窗口中的每个示例执行此操作,在这种情况下所有没有版本25.1.1的库。

您必须在修复指定的库后同步gradle才能查看您必须更改的下一个库和包。

<强>重要:如果您没有显式使用一个或多个指定的库,并且它会给您错误,这意味着它正在被另一个库内部使用,无论如何都要显式编译它

您还可以使用另一种方法来查看您实际编译的所有库的版本的差异(例如运行gradle依赖关系报告或转到您的库文件),真正的目的是编译您使用相同版本的所有库

使用支持-v13而不是支持-v4

compile 'com.android.support:support-v13:25.2.0'

我刚刚将我的Android支持存储库更新为(修订:44.0.0);然后Android SDK工具和模拟器到最新版本25.3.1从sdk管理器>SDK工具它解决了我的问题

只需添加此:

compile 'com.android.support:mediarouter-v7:25.2.0'

Updated新SDK版本

compile 'com.android.support:mediarouter-v7:28.0.0-alpha3'

A)运行gradle dependencies./gradlew dependencies

B)查看您的树并找出您的哪些依赖项为您无法控制的依赖项指定了不同的支持库版本。

我没有意识到这个警告也会显示依赖项是否完全未被你自己的代码直接使用。在我的例子中,Facebook指定了一些我没有使用的支持库,你可以在下面看到,这些依赖项中的大多数都被我自己的25.2.0规范覆盖了,用->X. X. X(*)符号表示。卡片视图和自定义选项卡库没有被任何人覆盖,所以我需要为自己要求25.2.0,即使我不使用它们。

+--- com.facebook.android:facebook-android-sdk:4.17.0|    +--- com.android.support:support-v4:25.0.0 -> 25.2.0 (*)|    +--- com.android.support:appcompat-v7:25.0.0 -> 25.2.0 (*)|    +--- com.android.support:cardview-v7:25.0.0|    |    \--- com.android.support:support-annotations:25.0.0 -> 25.2.0|    +--- com.android.support:customtabs:25.0.0|    |    +--- com.android.support:support-compat:25.0.0 -> 25.2.0 (*)|    |    \--- com.android.support:support-annotations:25.0.0 -> 25.2.0|    \--- com.parse.bolts:bolts-android:1.4.0 (*)

如果Gradle已经警告过你并给你举了例子…

示例包括com.android.support:动画矢量绘图:25.1.1com.android.support: media arouter-v7:24.0.0

…如果您为较低版本添加一些grep高亮显示会更容易,因为gradle dependencies可能非常冗长:

./gradlew dependencies | grep --color -E 'com.android.support:mediarouter-v7|$'

我在更新到Android Studio 2.3后遇到了这个问题

在依赖关系中添加这些行解决了我的问题

compile 'com.android.support:customtabs:25.2.0'compile 'com.android.support:palette-v7:25.2.0'

对我来说,这个错误是我导入的第三方库的结果,该库使用了旧的Google支持库模块。我只是将它们更新到最新版本(例如在Github上检查),错误就消失了。我建议检查您build.gradle中包含的所有非Google库是否是最新的。

我用这两个来解决我升级到Android Studio 2.3后的问题

compile 'com.android.support:animated-vector-drawable:25.0.0'compile 'com.android.support:mediarouter-v7:25.0.0'

使用变量:执行以下操作将使您更容易确保对所有库使用相同的版本

dependencies {
ext {support_library_version = '25.2.0'google_play_services_version = '10.2.0'}
//#####################################################################//          Support Library//#####################################################################compile "com.android.support:appcompat-v7:${support_library_version}"compile "com.android.support:palette-v7:${support_library_version}"compile "com.android.support:design:${support_library_version}"
//#####################################################################//          Google Play Services//#####################################################################compile "com.google.android.gms:play-services-auth:${google_play_services_version}"compile "com.google.android.gms:play-services-ads:${google_play_services_version}"compile "com.google.android.gms:play-services-analytics:${google_play_services_version}"
//#####################################################################//          Firebase//#####################################################################compile "com.google.firebase:firebase-core:${google_play_services_version}"compile "com.google.firebase:firebase-auth:${google_play_services_version}"compile "com.google.firebase:firebase-messaging:${google_play_services_version}"

有关Google建议您如何处理此版本控制的更多信息,请参阅本文:https://developer.android.com/studio/build/index.html#top-level

我不得不在gradle中添加以下行来删除错误

compile 'com.android.support:animated-vector-drawable:25.2.0'compile 'com.android.support:preference-v7:25.2.0'compile 'com.android.support:customtabs:25.2.0'compile 'com.android.support:cardview-v7:25.2.0'

尝试使构建工具与支持库的版本完全相同

示例

android {compileSdkVersion 25buildToolsVersion "25.0.0"defaultConfig {applicationId "com.itechnologyeg.*******"minSdkVersion 16targetSdkVersion 25versionCode 1versionName "1.0"testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}dependencies {compile 'com.android.support:appcompat-v7:25.0.0'compile 'com.android.support:animated-vector-drawable:25.0.0'compile 'com.android.support:mediarouter-v7:25.0.0'compile 'com.android.support:recyclerview-v7:25.0.0'compile 'com.android.support:cardview-v7:25.0.0'compile 'com.android.support:design:25.0.0'}

我的问题与你的相似。这里有一个错误!

compile 'com.android.support:appcompat-v7:25.3.0'

所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。找到版本25.3.0、24.0.0。示例包括com.android.support:动画向量绘图:25.3.0和com.android.support:Mediaroutter-v7:24.0.0

看到这个示例包括“com.android.support:动画矢量绘图:25.3.0”和“com.android.support:Mediaroutter-v7:24.0.0”

只需在依赖项中添加这些代码,确保版本相同。

compile 'com.android.support:animated-vector-drawable:25.3.0'compile 'com.android.support:mediarouter-v7:25.3.0'

我以前遇到过同样的问题,我得到了解决方案。

我只是添加了具有另一个版本但与我的support:appcompat版本相同的库。

对于您的错误,例如:

所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。找到版本25.1.1、24.0.0。示例包括com.android.support:动画矢量绘图:25.1.1和com.android.support: Mediarout-v7:24.0.0

*解决方案是像这样编译这些库的版本:

compile 'com.android.support:mediarouter-v7:25.1.1'

-如果另一个库有同样的问题并且有另一个版本,只需使用您的support:appcompat版本编译它

这解决了我的问题,我希望它能解决你的问题。

最好的祝愿:)

更新到Android Studio 2.3后出现相同问题,修复是在build.gradle中添加以下包:

compile 'com.android.support:support-v13:25.3.1'

备注:更改版本以匹配项目中使用的其他支持库包

我得到了相同的错误后添加compile 'com.google.android.gms:play-services:10.2.4'编译'com.android.support:appcompat-v7:25.3.1'

添加animated-vector-drawablemediarouter libs解决了这个问题。

compile 'com.google.android.gms:play-services:10.2.4'compile 'com.android.support:appcompat-v7:25.3.1'compile 'com.android.support:animated-vector-drawable:25.3.1'compile 'com.android.support:mediarouter-v7:25.3.1'

替换这个

compile 'com.android.support:appcompat-v7:25.2.0'

通过这个

compile 'com.android.support:appcompat-v7:25.3.1'compile 'com.android.support:mediarouter-v7:25.3.1'

重建和良好的编码

我运行了./gradlew任务--all并检查了与目标版本(25.3.1)不同的依赖项。你会得到这样的东西:

app:prepareComAndroidSupportAnimatedVectorDrawable2531Library - Prepare com.android.support:animated-vector-drawable:25.3.1app:prepareComAndroidSupportAppcompatV72531Library - Prepare com.android.support:appcompat-v7:25.3.1app:prepareComAndroidSupportCardviewV72531Library - Prepare com.android.support:cardview-v7:25.3.1app:prepareComAndroidSupportCustomtabs2531Library - Prepare com.android.support:customtabs:25.3.1app:prepareComAndroidSupportDesign2531Library - Prepare com.android.support:design:25.3.1app:prepareComAndroidSupportMediarouterV72531Library - Prepare com.android.support:mediarouter-v7:25.3.1app:prepareComAndroidSupportPaletteV72531Library - Prepare com.android.support:palette-v7:25.3.1app:prepareComAndroidSupportRecyclerviewV72531Library - Prepare com.android.support:recyclerview-v7:25.3.1app:prepareComAndroidSupportSupportCompat2531Library - Prepare com.android.support:support-compat:25.3.1app:prepareComAndroidSupportSupportCoreUi2531Library - Prepare com.android.support:support-core-ui:25.3.1app:prepareComAndroidSupportSupportCoreUtils2531Library - Prepare com.android.support:support-core-utils:25.3.1app:prepareComAndroidSupportSupportFragment2531Library - Prepare com.android.support:support-fragment:25.3.1app:prepareComAndroidSupportSupportMediaCompat2531Library - Prepare com.android.support:support-media-compat:25.3.1app:prepareComAndroidSupportSupportV42531Library - Prepare com.android.support:support-v4:25.3.1app:prepareComAndroidSupportSupportVectorDrawable2531Library - Prepare com.android.support:support-vector-drawable:25.3.1app:prepareComAndroidSupportTransition2531Library - Prepare com.android.support:transition:25.3.1app:prepareComAndroidVolleyVolley100Library - Prepare com.android.volley:volley:1.0.0app:prepareComCrashlyticsSdkAndroidAnswers1312Library - Prepare com.crashlytics.sdk.android:answers:1.3.12app:prepareComCrashlyticsSdkAndroidBeta124Library - Prepare com.crashlytics.sdk.android:beta:1.2.4app:prepareComCrashlyticsSdkAndroidCrashlytics267Library - Prepare com.crashlytics.sdk.android:crashlytics:2.6.7app:prepareComCrashlyticsSdkAndroidCrashlyticsCore2316Library - Prepare com.crashlytics.sdk.android:crashlytics-core:2.3.16app:prepareComFacebookAndroidFacebookAndroidSdk4161Library - Prepare com.facebook.android:facebook-android-sdk:4.16.1app:prepareComGoogleAndroidGmsPlayServicesAnalytics1026Library - Prepare com.google.android.gms:play-services-analytics:10.2.6app:prepareComGoogleAndroidGmsPlayServicesAnalyticsImpl1026Library - Prepare com.google.android.gms:play-services-analytics-impl:10.2.6app:prepareComGoogleAndroidGmsPlayServicesAuth1026Library - Prepare com.google.android.gms:play-services-auth:10.2.6app:prepareComGoogleAndroidGmsPlayServicesAuthBase1026Library - Prepare com.google.android.gms:play-services-auth-base:10.2.6app:prepareComGoogleAndroidGmsPlayServicesBase1026Library - Prepare com.google.android.gms:play-services-base:10.2.6app:prepareComGoogleAndroidGmsPlayServicesBasement1026Library - Prepare com.google.android.gms:play-services-basement:10.2.6app:prepareComGoogleAndroidGmsPlayServicesCast1026Library - Prepare com.google.android.gms:play-services-cast:10.2.6app:prepareComGoogleAndroidGmsPlayServicesLocation1026Library - Prepare com.google.android.gms:play-services-location:10.2.6app:prepareComGoogleAndroidGmsPlayServicesMaps1026Library - Prepare com.google.android.gms:play-services-maps:10.2.6app:prepareComGoogleAndroidGmsPlayServicesTagmanagerV4Impl1026Library - Prepare com.google.android.gms:play-services-tagmanager-v4-impl:10.2.6app:prepareComGoogleAndroidGmsPlayServicesTasks1026Library - Prepare com.google.android.gms:play-services-tasks:10.2.6app:prepareComGoogleFirebaseFirebaseAnalytics1026Library - Prepare com.google.firebase:firebase-analytics:10.2.6app:prepareComGoogleFirebaseFirebaseAnalyticsImpl1026Library - Prepare com.google.firebase:firebase-analytics-impl:10.2.6app:prepareComGoogleFirebaseFirebaseAppindexing1024Library - Prepare com.google.firebase:firebase-appindexing:10.2.4app:prepareComGoogleFirebaseFirebaseCommon1026Library - Prepare com.google.firebase:firebase-common:10.2.6app:prepareComGoogleFirebaseFirebaseCore1026Library - Prepare com.google.firebase:firebase-core:10.2.6app:prepareComGoogleFirebaseFirebaseIid1026Library - Prepare com.google.firebase:firebase-iid:10.2.6app:prepareComGoogleFirebaseFirebaseMessaging1026Library - Prepare com.google.firebase:firebase-messaging:10.2.6app:prepareComMindorksPlaceholderview027Library - Prepare com.mindorks:placeholderview:0.2.7app:prepareDebugAndroidTestDependenciesapp:prepareDebugDependenciesapp:prepareDebugUnitTestDependenciesapp:prepareInfoHoang8fAndroidSegmented105Library - Prepare info.hoang8f:android-segmented:1.0.5app:prepareIoFabricSdkAndroidFabric1316Library - Prepare io.fabric.sdk.android:fabric:1.3.16app:prepareNoNordicsemiAndroidLog211Library - Prepare no.nordicsemi.android:log:2.1.1app:prepareNoNordicsemiAndroidSupportV18Scanner100Library - Prepare no.nordicsemi.android.support.v18:scanner:1.0.0

在这种情况下,我的目标是25.3.1,并且在运行此命令时有一些针对不同版本的依赖项。诀窍是识别此列表中针对以前版本的依赖项,并通过在Gradle中导入最新版本的依赖项来覆盖它。

只有一个办法…你必须手动完成…转到build.gradle选中将所有依赖项分配给相同的版本。它应该工作…

确保所有Facebook SDK依赖项都使用您项目的相同支持库版本:

dependencies {// Facebook SDK dependencies, excluding Boltscompile "com.android.support:appcompat-v7:25.4.0"compile "com.android.support:cardview-v7:25.4.0"compile "com.android.support:customtabs:25.4.0"compile "com.android.support:design:25.4.0"
compile "com.facebook.android:facebook-android-sdk:4.23.0"}

可能导致此问题的另一件事是,如果您有这样的声明:

compile 'com.android.support:support-v4:25.3.1'compile 'com.android.support:appcompat-v7:25.3.1'compile 'com.android.support:recyclerview-v7:+'

+意味着采用最新版本,可能比25.3.1晚。将+替换为像25.3.1这样的特定版本:

compile 'com.android.support:support-v4:25.3.1'compile 'com.android.support:appcompat-v7:25.3.1'compile 'com.android.support:recyclerview-v7:25.3.1'

它会解决这个问题

将其添加到build.gradle的末尾(模块:应用程序):

configurations.all {resolutionStrategy.eachDependency { DependencyResolveDetails details ->def requested = details.requestedif (requested.group == 'com.android.support') {if (!requested.name.startsWith("multidex")) {details.useVersion '25.3.1'}}
}}

确保您将“25.3.1”替换为您要用于所有依赖项的android支持库版本,它不应该低于您的编译sdk版本

比重新同步Gradle

突出显示错误并按“ALT+ENTER”,您将看到一个选项:

添加库依赖项>编辑意图设置

这将带您到一个菜单,您将在其中看到与支持-Compat不同的特定问题支持依赖项。在gradle(com'XXX')中创建其依赖项并将其版本设置为与支持-Compat的版本匹配。同步gradle,你就完成了。

如果在appcompat上出现相同的错误

implementation 'com.android.support:appcompat-v7:27.0.1'

然后添加design解决了它。

implementation 'com.android.support:appcompat-v7:27.0.1'implementation 'com.android.support:design:27.0.1'

对我来说,添加

implementation 'de.mrmaffen:vlc-android-sdk:2.0.6'

包含appcompat-v7:23.1.1

.构想/库

没有vlc,只有appcompat就足够了。

implementation 'com.android.support:appcompat-v7:26.1.0'

在这一行之后,您必须在gradle中添加新行

implementation 'com.android.support:design:26.1.0'

这是我修复此警告的流程

build.gradle

android {compileSdkVersion ... // must same version (ex: 26)...}
dependencies {...compile 'any com.android.support... library'  // must same version (ex: 26.0.1)compile 'any com.android.support... library'  // must same version (ex: 26.0.1)
...compile ('a library B which don't use 'com.android.support...' OR use SAME version of 'com.android.support'){// do nothing}
...compile ('a library C which use DIFFERENT 'com.android.support...' (ex:27.0.1) {// By default, if use don't do anything here your app will choose the higher com.android.support... for whole project (in this case it is 27.0.1)
// If you want to use 26.0.1 useexclude group: 'com.android.support', module: '...' (ex module: 'appcompat-v7')exclude group: 'com.android.support', module: 'another module'...
// If you want to use 27.0.1 doUpgrade `compileSdkVersion` and all 'com.android.support' to 27.0.1.(It may be a good solution because the best practice is always use latest `compileSdkVersion`.However, use 26 or 27 is base on you for example higher library may have bug)}}

查看/验证应用程序中所有库的dependencies
打开终端并运行./gradlew app:dependencies

在您的应用程序中查看特定库的dependencies,请在此处查看教程:-如何在Gradle中排除特定依赖项的依赖项

希望能有帮助

我不得不在gradle中添加以下行来删除错误这取决于您使用的版本与appcompat相同

compile 'com.android.support:appcompat-v7:26+'
compile 'com.android.support:mediarouter-v7:26+'

解决冲突的另一种方法是为所有依赖项强制执行正确的版本,如下所示:

dependencies {configurations.all {resolutionStrategy.eachDependency { DependencyResolveDetails details ->if (details.requested.group == 'com.android.support' && details.requested.name == 'support-v4') {details.useVersion "27.0.2"}}...}

https://docs.gradle.org/current/userguide/customizing_dependency_resolution_behavior.html

正如您已经看到上面的所有答案和评论,但这个答案是为了清除新开发人员可能不容易得到的东西。

./gradlew-q依赖项app:依赖项--配置编译

上面的线无疑会挽救你的生命,但如何从上面的线的结果中得到确切的点。

当你从上面的命令中得到所有依赖关系图表或列表时,你必须搜索你在代码中得到的冲突版本号。请参阅下图。

在此处输入图片描述

在上图中,您可以看到23.4.0正在创建问题,但我们无法在gradle文件中找到这个问题。所以现在这个版本号(23.4.0)将拯救我们。当我们有这个数字时,我们将在上面命令结果的结果中找到这个数字,并直接将该依赖项直接导入我们的gradle文件中。请参阅下图以获得清晰的视图。

您可以清楚地看到com.android.support: cardview-v7:23.4.0com.android.support:自定义标签:23.4.0正在使用导致问题的版本。现在只需从依赖项复制这些行列出并在我们的gradle文件中明确使用,但使用更新的版本链接

实现"com.android.support: cardview-v7:26.1.0"实现"com.android.support: Custtabs: 26.1.0"

如果您在实现下面提到的所有新库后面临问题。我在这个'com.android.support:appcompat-v7:27.1.0'兼容的版本上遇到了上述相同的问题。

implementation 'com.android.support:appcompat-v7:27.1.0'implementation 'com.android.support:design:27.1.0'implementation 'com.android.support:appcompat-v7:27.1.0'implementation 'com.android.support:mediarouter-v7:27.1.0'implementation 'com.android.support:recyclerview-v7:27.1.0'implementation 'com.android.support:cardview-v7:27.1.0'implementation 'com.android.support:support-v13:27.1.0'implementation 'com.android.support:support-v4:27.1.0'

我只是替换这个

'com.android.support:appcompat-v7:27.1.0'

对这

'com.android.support:appcompat-v7:27.0.1'

我有这个:

dependencies {implementation fileTree(dir: 'libs', include: ['*.jar'])implementation 'com.android.support:appcompat-v7:27.1.1'implementation 'com.android.support:design:27.1.1'implementation 'com.android.support:support-v4:27.1.1'implementation 'com.google.firebase:firebase-auth:12.0.1'implementation 'com.google.firebase:firebase-firestore:12.0.1'implementation 'com.google.firebase:firebase-messaging:12.0.1'implementation 'com.google.android.gms:play-services-auth:12.0.1'implementation'com.facebook.android:facebook-login:[4,5)'implementation 'com.twitter.sdk.android:twitter:3.1.1'implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'implementation 'org.jetbrains:annotations-java5:15.0'implementation project(':vehiclesapi')testImplementation 'junit:junit:4.12'androidTestImplementation 'com.android.support.test:runner:1.0.1'androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'}

并得到这个错误:输入图片描述

解决方案很简单-主要依赖项都是正确的,因此会留下任何第三方依赖项。一个接一个地删除,直到找到罪魁祸首,结果是facebook!它使用的是Android支持库的版本27.0.2。我尝试添加cardview版本27.1.1,但这并不起作用,解决方案仍然足够简单。

dependencies {implementation fileTree(dir: 'libs', include: ['*.jar'])implementation 'com.android.support:appcompat-v7:27.1.1'implementation 'com.android.support:design:27.1.1'implementation 'com.android.support:support-v4:27.1.1'implementation 'com.google.firebase:firebase-auth:12.0.1'implementation 'com.google.firebase:firebase-firestore:12.0.1'implementation 'com.google.firebase:firebase-messaging:12.0.1'implementation 'com.google.android.gms:play-services-auth:12.0.1'implementation('com.facebook.android:facebook-login:[4,5)'){// contains com.android.support:v7:27.0.2, included required com.android.support.*:27.1.1 modulesexclude group: 'com.android.support'}implementation 'com.android.support:cardview-v7:27.1.1' // to replace facebook sdk's cardview-v7:27.0.2.implementation 'com.twitter.sdk.android:twitter:3.1.1'implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'implementation 'org.jetbrains:annotations-java5:15.0'implementation project(':vehiclesapi')testImplementation 'junit:junit:4.12'androidTestImplementation 'com.android.support.test:runner:1.0.1'androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'}

我的解决方案我只是添加

//noinspection GradleCompatible

我构建测试我的应用程序,一切都好。

花了大约5个小时后,这个解决方案对我有效。

首先将这一行添加到您的清单标记,如果您还没有:

xmlns:tools="http://schemas.android.com/tools"

示例:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.winanainc"android:versionCode="3"android:versionName="1.2"xmlns:tools="http://schemas.android.com/tools">

然后在您的应用程序中添加此元标记以覆盖您的构建工具版本,在这种情况下,例如我选择了版本25.3.1

<application>.....<meta-datatools:replace="android:value"android:name="android.support.VERSION"android:value="25.3.1" /></application>

对我来说,我通过添加来解决错误:compile 'com.android.support:design:<version>'

所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。找到版本25.1.1、24.0.0。示例包括com.android.support:动画向量绘图:25.1.1和com.android.support:Mediaroutter-v7:24.0.0

此警告通常在我们使用Google Play服务时发生,因为它使用支持库作为依赖项。

我们大多数人都不知道我们可以覆盖Google Play服务中使用的支持库。当我们使用以下依赖项时:

implementation "com.android.support:animated-vector-drawable:25.1.1"

它隐式依赖于com.android.support:mediarouter-v7:25.1.1。但它与com.android.support:mediarouter-v7:24.0.0的Google Play服务依赖项冲突。因此,我们需要通过以下方式显式使用库来覆盖它:

implementation "com.android.support:mediarouter-v7:25.1.1"

然后,您的依赖项块将包括它们两个,如下所示:

dependencies {implementation "com.android.support:animated-vector-drawable:25.1.1"implementation "com.android.support:mediarouter-v7:25.1.1"
...}

我有同样的问题,但我通过添加解决了这个问题这三条线

implementation 'com.android.support:design:27.1.1'implementation "com.android.support:customtabs:27.1.1"implementation 'com.android.support:mediarouter-v7:27.1.1'

现在一切都很完美

解决问题的最佳方法是实现Android Studio建议的所有“com.android.support:…”

(无论您使用的是哪种支持版本-27.1.1、28.0.0等)

将光标放在错误线上,例如。

implementation 'com.android.support:appcompat-v7:28.0.0'

Android Studio会建议你哪个com.android.support:…'com.android.support: appcompat-v7:28.0.0'

示例

所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。找到版本28.0.0、27.1.0、27.0.2。示例包括com.android.support:动画矢量绘图:28.0.0和com.android.support:exif接口:27.1.0

所以添加com.android.support:animated-vector-drawable:28.0.0�.现在同步gradle文件。

一个接一个地尝试实现所有建议的“com.android.support:…”,直到这一行没有错误implementation 'com.android.support:appcompat-v7:28.0.0'

在我的情况下,我补充说

implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:animated-vector-drawable:28.0.0'implementation 'com.android.support:exifinterface:28.0.0'implementation 'com.android.support:cardview-v7:28.0.0'implementation 'com.android.support:customtabs:28.0.0'implementation 'com.android.support:support-media-compat:28.0.0'implementation 'com.android.support:support-v4:28.0.0'

所有这些依赖关系,对你来说可能是不同的。

此错误是因为滑翔库。尝试毕加索或其他图像库

包括以下行:

implementation 'com.android.support:support-v4:27.1.1'

确保您使用的是Android Studio插件3+

在此处输入图片描述

该问题可以使用以下方法解决:

  1. 打开你的AndroidManifest.xml文件。
  2. 点击底部的合并舱单选项
  3. 在右侧,它将显示其他清单文件。以下是您包含的不同依赖项的单独清单文件,或者由于其他依赖项的影响而包含的。
  4. 找出错误消息中提到的依赖项。单击它以打开其清单文件。
  5. 如果您的错误消息说要更改meta-data中的android:value属性,那么这就是进行更改的地方。
  6. 更改出现不匹配版本号的值和其他位置,并使用build.gradle文件中包含的版本进行更改。
  7. 现在同步项目,你就可以走了

在搜索和组合答案后,这个问题的2018版对我有效:

1)在导航选项卡上将其更改为项目视图

2)导航到[您的项目名称]/。想法/库/

3)删除所有以Gradle__com_android_support_开始的文件

例如:Gradle__com_android_support_animated_vector_drawable_26_0_0.xml

4)在您的gradle文件中定义一个变量并使用它来替换版本号,例如{变量名称}

def变量:

ext {support_library_version = '28.0.0' //use the version of choice}

使用变量:

implementation "com.android.support:cardview-v7:${support_library_version}"

示例gradle:

dependencies {ext {support_library_version = '28.0.0' //use the version of choice}
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "com.android.support:animated-vector-drawable:${support_library_version}"implementation "com.android.support:appcompat-v7:${support_library_version}"implementation "com.android.support:customtabs:${support_library_version}"implementation "com.android.support:cardview-v7:${support_library_version}"implementation "com.android.support:support-compat:${support_library_version}"implementation "com.android.support:support-v4:${support_library_version}"implementation "com.android.support:support-core-utils:${support_library_version}"implementation "com.android.support:support-core-ui:${support_library_version}"implementation "com.android.support:support-fragment:${support_library_version}"implementation "com.android.support:support-media-compat:${support_library_version}"implementation "com.android.support:appcompat-v7:${support_library_version}"implementation "com.android.support:recyclerview-v7:${support_library_version}"implementation "com.android.support:design:${support_library_version}"
}

我的问题解决了添加以下最新的依赖项实现'com.google.firebase: Firebase-auth: 16.0.4'

在2018年更新此错误从项目结构添加实现

implementation 'com.android.support:support-v13:28.0.0'

在项目模式下-->外部图书馆在那里你可以找到你的问题,在我的情况下我正在使用版本28和我找到的外部库com.android.support:support-media-compat-26.0.0这里是错误。

在实现support v13之后,它正在工作

非常简单的Android Studio 3. x的新版本。

只需复制小于当前版本的版本,并显式添加与当前版本相同的版本号。

示例

找到版本27.1.1,27.1.0。示例包括com.android.support:动画矢量绘图:27.1.1和com.android.support:exifInterface:27.1.0

只需复制版本com.android.support:exifinterface:27.1.0并将其更改为com.android.support:exifinterface:27.1.1,使其等于您正在使用的当前版本,并将其添加到您的gradle依赖项中,如下所示。

implementation 'com.android.support:exifinterface:27.1.1'

注意:完成后,不要忘记单击编辑器顶部的立即同步

将这些添加到应用程序级别的依赖项中

implementation 'com.android.support:asynclayoutinflater:28.0.0'implementation 'com.android.support:exifinterface:28.0.0'implementation 'com.android.support:animated-vector-drawable:28.0.0'implementation 'com.android.support:support-media-compat:28.0.0'implementation 'com.android.support:support-v4:28.0.0'

我在升级到Android Studio 3.4和sdk版本到28.0.0后遇到了这个问题。应用以下依赖项为我解决了问题。

    implementation 'com.android.support:exifinterface:28.0.0'

将以下实现语句添加到依赖项部分。(如果显示一些App Compat库不匹配错误,那么我们必须重新实现所有不匹配的支持库。我们可以通过将光标放在错误上找到不匹配的库。按快捷键ctrl+F1在android Studio中显示完整细节。)

implementation 'com.android.support:exifinterface:28.0.0'implementation 'com.android.support:asynclayoutinflater:28.0.0'implementation 'com.android.support:animated-vector-drawable:28.0.0'implementation 'com.android.support:support-media-compat:28.0.0'implementation 'com.android.support:support-v4:28.0.0'

它很简单,只需强制所有v7和v4库使用您在依赖项之前设置的库版本。

configurations.all {// To resolve the conflict for com.android.databinding// dependency on support-v4:21.0.3resolutionStrategy.force 'com.android.support:support-v4:28.0.0'resolutionStrategy.force 'com.android.support:support-v7:28.0.0'}

我的项目中有这些依赖项:

implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:support-v4:28.0.0'implementation 'com.android.support:design:28.0.0'implementation 'com.android.support:support-media-compat:28.0.0'
implementation 'com.google.android.gms:play-services-maps:16.1.0'
implementation 'com.google.firebase:firebase-database:17.0.0'implementation 'com.google.firebase:firebase-storage:17.0.0'implementation 'com.google.firebase:firebase-messaging:18.0.0'
implementation 'com.firebaseui:firebase-ui-storage:0.6.0'

到目前为止,似乎没有什么不对,但我得到了这个消息:

找到版本28.0.0、23.4.0。示例包括com.android.support:动画矢量绘图:28.0.0和com.android.support: palette-v7:23.4.

然后我做了:

$ ./gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath >> dep.txt

在文件中,我搜索了调色板,发现它被Firebase存储使用:

\--- com.firebaseui:firebase-ui-storage:0.6.0+--- com.android.support:appcompat-v7:23.4.0 -> 28.0.0 (*)+--- com.android.support:palette-v7:23.4.0

添加后:

implementation 'com.android.support:palette-v7:28.0.0'

似乎解决了,没有更多的错误。

//干杯