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

bsequi 发布于 2019-09-30 android 最后更新 2019-09-30 21:39 179 浏览

更新到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
enter image description here 我的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'
}
已邀请:

xsint

赞同来自:

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

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}"

aet

赞同来自:

使用编译'com.android.support:appcompat-v7:25.3.1'添加compile 'com.google.android.gms:play-services:10.2.4'后,我收到了同样的错误。 添加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'

sunde

赞同来自:

  1. 转到Project Files/My project/.idea/libraries,查看哪些库不同。
  2. 您必须在build.gradle文件中手动包含这些具有相同版本的库。
  3. 然后,同步您的项目。
例如。:
compile 'com.android.support:appcompat-v7:25.2.0'
// Wrong library version found on 1st point
compile 'com.android.support:customtabs:25.2.0'

nrerum

赞同来自:

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

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.0"
    defaultConfig {
        applicationId "com.itechnologyeg.*******"
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 1
        versionName "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'
}

lmagni

赞同来自:

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

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'
它将解决这个问题

ad_est

赞同来自:

更新到Android Studio 2.3后,我遇到了这个问题 在依赖项中添加这些行解决了我的问题

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

seaque

赞同来自:

对于所有情况,不仅仅是针对这些版本或库: 注意一些关于错误的小信息窗口,它说明你必须改变和添加的例子。 在这种情况下:
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
你的
com.android.support:animated-vector-drawable:25.1.1
是版本25.1.1,和你的
com.android.support:mediarouter-v7:24.0.0
版本是24.0.0,因此您必须添加具有相同版本的mediarouter:
com.android.support:mediarouter-v7:25.1.1
并为小信息窗口所示的每个示例执行此操作,在这种情况下,所有库都没有版本25.1.1。 修复指定的库后,您必须同步gradle以查看您必须更改的下一个库和包。 重要:

如果您没有明确地使用一个或多个指定的库并且它给您错误,则意味着它正由另一个库在内部使用,无论如何都要显式编译它。 您还可以使用另一种方法来查看实际编译的所有库的版本差异(例如运行gradle依赖关系报告或转到库文件),真正的目标是编译您正在使用的所有库相同的版本。

gut

赞同来自:

将它添加到build.gradle的最后(Module:app):

configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
    def requested = details.requested
    if (requested.group == 'com.android.support') {
        if (!requested.name.startsWith("multidex")) {
            details.useVersion '25.3.1'
        }
     }
}
}
确保将'25 .3.1'替换为要用于所有依赖项的android支持库的版本,它不应低于你的complile sdk版本 比重新同步gradle

aut_ut

赞同来自:

更新到Android Studio 2.3后,我遇到了完全相同的问题 将此行添加到依赖项解决了我的问题:

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

hiure

赞同来自:

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

image description here

kautem

赞同来自:

重新考虑一下

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'
重建和良好的编码

tqui

赞同来自:

我只想补充一点:

compile 'com.android.support:mediarouter-v7:25.2.0'
适用于新SDK版本的Updated
compile 'com.android.support:mediarouter-v7:25.3.1'

ehic

赞同来自:

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

xsint

赞同来自:

使用support-v13而不是support-v4

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

baut

赞同来自:

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

in_id

赞同来自:

之前我遇到了同样的问题,我得到了解决方案。 我刚刚添加了具有另一个版本但具有相同版本的support:appcompat的库。 例如,对于您的错误:

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
*解决方案是编译这些库的版本: compile 'com.android.support:mediarouter-v7:25.1.1' - 如果另一个库有相同的问题,还有另一个版本只是使用您的support:appcompat版本编译它 这解决了我的问题,我希望它可以解决你的问题。 最好的祝愿 :)

svero

赞同来自:

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

dependencies {
    // Facebook SDK dependencies, excluding Bolts
    compile "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"
}

a_et

赞同来自:

更新到Android Studio 2.3后出现同样的问题,修复是在build.gradle中添加以下包: compile 'com.android.support:support-v13:25.3.1' 注意:更改版本以匹配项目中使用的其他支持库包

jfugit

赞同来自:

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

kaut

赞同来自:

突出显示错误并按“ALT + ENTER”,您将看到一个选项: 添加库依赖关系>编辑意图设置 这将带您进入一个菜单,您将看到与support-compat不同的特定问题支持依赖项。在gradle(com'XXX')中创建它的依赖项并设置它的版本以匹配support-compat的版本。同步gradle,你就完成了。

zomnis

赞同来自:

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 (*)

aquia

赞同来自:

您可以使用以下解决方案之一解决此问题: 灵感来自CommonsWare answer: 运行Gradle依赖关系报告以查看完整树的内容 依赖是。 从那里,您将看到哪个库要求提供不同版本的Android支持库。 无论它要求什么,你可以直接询问它 25.2.0版本或使用Gradle的其他冲突解决方法来获得相同的版本。 跑:

./gradlew -q dependencies <module-name>:dependencies --configuration compile
例:
./gradlew -q dependencies app:dependencies --configuration compile
对我来说,删除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依赖于支持库的一些旧组件,因此我们需要自己明确添加它们。

更新 从gradle插件版本开始:3.0 compile已替换为implementationapi,请参阅this answer以获取差异。 因此使用:
./gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath
并搜索冲突的版本。 如果有人知道gradle插件中更好的方法,请告诉我。

iqui

赞同来自:

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

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

prerum

赞同来自:

我只是将我的Android支持存储库更新为(版本:44.0.0); 然后Android SDK工具和Emulator从sdk manager> SDK工具到最新版本25.3.1 它解决了我的问题。

paut

赞同来自:

我必须在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'

oiusto

赞同来自:

只有一种方法......你必须手动完成...... 转到build.gradle检查将所有依赖项分配给相同的版本.. 它应该工作..

gomnis

赞同来自:

我的问题与你的问题类似。 这里存在错误! compile 'com.android.support:appcompat-v7:25.3.0' 所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。发现版本25.3.0,24.0.0。示例包括'com.android.support:animated-vector-drawable:25.3.0'和'com.android.support:mediarouter-v7:24.0.0' 看到这个 示例包括'com.android.support:animated-vector-drawable:25.3.0'和'com.android.support:mediarouter-v7:24.0.0' 只需在依赖项中添加这些代码,确保版本相同。

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

eomnis

赞同来自:

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

app:prepareComAndroidSupportAnimatedVectorDrawable2531Library - Prepare com.android.support:animated-vector-drawable:25.3.1
app:prepareComAndroidSupportAppcompatV72531Library - Prepare com.android.support:appcompat-v7:25.3.1
app:prepareComAndroidSupportCardviewV72531Library - Prepare com.android.support:cardview-v7:25.3.1
app:prepareComAndroidSupportCustomtabs2531Library - Prepare com.android.support:customtabs:25.3.1
app:prepareComAndroidSupportDesign2531Library - Prepare com.android.support:design:25.3.1
app:prepareComAndroidSupportMediarouterV72531Library - Prepare com.android.support:mediarouter-v7:25.3.1
app:prepareComAndroidSupportPaletteV72531Library - Prepare com.android.support:palette-v7:25.3.1
app:prepareComAndroidSupportRecyclerviewV72531Library - Prepare com.android.support:recyclerview-v7:25.3.1
app:prepareComAndroidSupportSupportCompat2531Library - Prepare com.android.support:support-compat:25.3.1
app:prepareComAndroidSupportSupportCoreUi2531Library - Prepare com.android.support:support-core-ui:25.3.1
app:prepareComAndroidSupportSupportCoreUtils2531Library - Prepare com.android.support:support-core-utils:25.3.1
app:prepareComAndroidSupportSupportFragment2531Library - Prepare com.android.support:support-fragment:25.3.1
app:prepareComAndroidSupportSupportMediaCompat2531Library - Prepare com.android.support:support-media-compat:25.3.1
app:prepareComAndroidSupportSupportV42531Library - Prepare com.android.support:support-v4:25.3.1
app:prepareComAndroidSupportSupportVectorDrawable2531Library - Prepare com.android.support:support-vector-drawable:25.3.1
app:prepareComAndroidSupportTransition2531Library - Prepare com.android.support:transition:25.3.1
app:prepareComAndroidVolleyVolley100Library - Prepare com.android.volley:volley:1.0.0
app:prepareComCrashlyticsSdkAndroidAnswers1312Library - Prepare com.crashlytics.sdk.android:answers:1.3.12
app:prepareComCrashlyticsSdkAndroidBeta124Library - Prepare com.crashlytics.sdk.android:beta:1.2.4
app:prepareComCrashlyticsSdkAndroidCrashlytics267Library - Prepare com.crashlytics.sdk.android:crashlytics:2.6.7
app:prepareComCrashlyticsSdkAndroidCrashlyticsCore2316Library - Prepare com.crashlytics.sdk.android:crashlytics-core:2.3.16
app:prepareComFacebookAndroidFacebookAndroidSdk4161Library - Prepare com.facebook.android:facebook-android-sdk:4.16.1
app:prepareComGoogleAndroidGmsPlayServicesAnalytics1026Library - Prepare com.google.android.gms:play-services-analytics:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesAnalyticsImpl1026Library - Prepare com.google.android.gms:play-services-analytics-impl:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesAuth1026Library - Prepare com.google.android.gms:play-services-auth:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesAuthBase1026Library - Prepare com.google.android.gms:play-services-auth-base:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesBase1026Library - Prepare com.google.android.gms:play-services-base:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesBasement1026Library - Prepare com.google.android.gms:play-services-basement:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesCast1026Library - Prepare com.google.android.gms:play-services-cast:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesLocation1026Library - Prepare com.google.android.gms:play-services-location:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesMaps1026Library - Prepare com.google.android.gms:play-services-maps:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesTagmanagerV4Impl1026Library - Prepare com.google.android.gms:play-services-tagmanager-v4-impl:10.2.6
app:prepareComGoogleAndroidGmsPlayServicesTasks1026Library - Prepare com.google.android.gms:play-services-tasks:10.2.6
app:prepareComGoogleFirebaseFirebaseAnalytics1026Library - Prepare com.google.firebase:firebase-analytics:10.2.6
app:prepareComGoogleFirebaseFirebaseAnalyticsImpl1026Library - Prepare com.google.firebase:firebase-analytics-impl:10.2.6
app:prepareComGoogleFirebaseFirebaseAppindexing1024Library - Prepare com.google.firebase:firebase-appindexing:10.2.4
app:prepareComGoogleFirebaseFirebaseCommon1026Library - Prepare com.google.firebase:firebase-common:10.2.6
app:prepareComGoogleFirebaseFirebaseCore1026Library - Prepare com.google.firebase:firebase-core:10.2.6
app:prepareComGoogleFirebaseFirebaseIid1026Library - Prepare com.google.firebase:firebase-iid:10.2.6
app:prepareComGoogleFirebaseFirebaseMessaging1026Library - Prepare com.google.firebase:firebase-messaging:10.2.6
app:prepareComMindorksPlaceholderview027Library - Prepare com.mindorks:placeholderview:0.2.7
app:prepareDebugAndroidTestDependencies
app:prepareDebugDependencies
app:prepareDebugUnitTestDependencies
app:prepareInfoHoang8fAndroidSegmented105Library - Prepare info.hoang8f:android-segmented:1.0.5
app:prepareIoFabricSdkAndroidFabric1316Library - Prepare io.fabric.sdk.android:fabric:1.3.16
app:prepareNoNordicsemiAndroidLog211Library - Prepare no.nordicsemi.android:log:2.1.1
app:prepareNoNordicsemiAndroidSupportV18Scanner100Library - Prepare no.nordicsemi.android.support.v18:scanner:1.0.0
在这种情况下,我的目标是25.3.1,并且在运行此命令时有一些针对不同版本的依赖项。诀窍是识别此列表中针对先前版本的依赖项,并通过在Gradle中导入最新版本的依赖项来覆盖该依赖项。