所有com.android.support库必须使用完全相同的版本规范
更新到android studio 2.3后,我得到了这个错误信息。 我知道这只是一个应用程序运行正常,但它真的很奇怪。
所有com.android.support库必须使用完全相同的版本规范(混合版本可能会导致运行时崩溃)。 发现版本25.1.1,24.0.0。 示例包括com.android.support:animated-vector-drawable:25.1.1和com.android.support:mediarouter-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' }
您可以使用以下解决scheme之一来解决此问题:
受CommonsWare启发的答案 :
运行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.0
和com.google.android.gms:play-services-maps:10.2.0
因为它们是我使用的唯一两个播放服务。
我认为gms:play-services
依赖于支持库的一些旧组件,所以我们需要自己明确地添加它们。
更新:
至于gradle插件版本:3.0 compile
已经被implementation
或者api
所取代,看到这个答案的区别。
因此改为使用:
./gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath
并search冲突的版本。
如果有人知道在知道gradle插件更好的方式,请让我知道。
- 转到
Project Files/My project/.idea/libraries
,看看哪些库是不同的。 - 您将不得不手动将这些库与您的
build.gradle
文件中相同的版本。 - 然后,同步你的项目。
例如:
compile 'com.android.support:appcompat-v7:25.2.0' // Wrong library version found on 1st point compile 'com.android.support:customtabs:25.2.0'
对于所有情况,不仅仅是这些版本或库:
注意那些关于错误的小信息窗口, 它说你必须改变和添加的例子 。
在这种情况下:
发现版本25.1.1,24.0.0。 示例包括com.android.support:animated-vector-drawable:25.1.1和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依赖关系报告或转到您的库文件), 真正的目标是编译所有使用的库相同的版本 。
更新到Android Studio 2.3后,我遇到了完全相同的问题
将这一行添加到依赖关系解决了我的问题:
compile 'com.android.support:customtabs:25.2.0'
我只是补充一点:
compile 'com.android.support:mediarouter-v7:25.2.0'
Updated
了新的SDK版本
compile 'com.android.support:mediarouter-v7:25.3.1'
使用variables :做下面的事情会让你更容易确保你在所有库中使用相同的版本
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}"
A)运行gradle dependencies
或./gradlew dependencies
B)看看你的树,并找出你的哪个依赖项指定了一个不受控制的依赖关系的支持库版本。
我没有意识到,如果依赖完全没有被你自己的代码直接使用,这个警告也会显示出来。 在我的情况下,Facebook指定了一些我没有使用的支持库,你可以看到下面大部分依赖关系被我自己的25.2.0规范覆盖,用– > XXX(*)符号表示。 卡片视图和自定义选项卡库不被任何人覆盖,所以我需要为那些自己请求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 (*)
使用support-v13而不是support-v4
compile 'com.android.support:support-v13:25.2.0'
我的问题与你的相似。 这里存在一个错误!
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'
在compile 'com.google.android.gms:play-services:10.2.4'
并编译'com.android.support:appcompat-v7:25.3.1'
后,我得到了同样的错误。
添加animated-vector-drawable
和mediarouter 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'
升级到android studio 2.3后,我用这两个来解决我的问题
compile 'com.android.support:animated-vector-drawable:25.0.0' compile 'com.android.support:mediarouter-v7:25.0.0'
我以前也遇到同样的问题,并且我已经得到了解决scheme。
我只是添加了具有另一个版本,但与我的support:appcompat
相同版本的库support:appcompat
。
例如你的错误:
所有com.android.support库必须使用完全相同的版本规范(混合版本可能会导致运行时崩溃)。 发现版本25.1.1,24.0.0。 示例包括com.android.support:animated-vector-drawable:25.1.1和com.android.support:mediarouter-v7:24.0.0
*解决scheme是像这样编译这些库的版本:
compile 'com.android.support:mediarouter-v7:25.1.1'
如果另一个库有相同的问题,并有另一个版本,只是用你的support:appcompat
版本进行编译
这解决了我的问题,我希望能解决你的问题。
最好的祝愿 :)
您已经定义了任何其他的依赖关系来编译版本24.0.0
而不是25.1.1
。 请设置所有依赖版本与25.1.1
相同。
打开项目的外部库,你会看到一些库仍然使用以前的版本,虽然你没有提到这些库,所以我的build议是使用特定的库版本,它会解决你的问题。
我只是更新我的Android支持信息库(修订版:44.0.0); 然后Android SDK工具和模拟器从最新版本25.3.1从SDKpipe理器> SDK工具它解决了我的问题。
更新到Android Studio 2.3后,我得到了这个问题
在依赖项中添加这些行解决了我的问题
compile 'com.android.support:customtabs:25.2.0' compile 'com.android.support:palette-v7:25.2.0'
我必须在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'
取消这个
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'
重build和良好的编码
确保所有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" }
对我来说,这个错误是我导入的第三方库的结果,它使用了旧的Google Support Library模块。 我只是将它们更新到最新版本(例如,检查Github),错误消失了。 我build议检查您包含在build.gradle
中的所有非Google库是否是最新的。
尝试使构build工具完全相同版本的支持库
例
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' }
在更新到Android Studio 2.3后有相同的问题,修复是在build.gradle
添加下面的包:
compile 'com.android.support:support-v13:25.3.1'
注:更改版本以与项目中使用的其他支持库软件包相匹配
我运行了./gradlew任务 – 完成并检查与目标版本(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中导入最新版本的依赖关系来覆盖这个依赖关系。
另一件可能导致这个问题的事情是,如果你有这样的声明:
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
这样的特定版本replace+
:
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'
这将解决这个问题
我设法join(不是很干净)
添加到你的build.gradle(模块:应用程序)的最后:
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' } } } }
确保你用你想用于所有依赖的android支持库版本replace'25.3.1',它不应该低于你的complile sdk版本
比重新同步gradle
只有一种方法…你必须手动做到这一点…去build.gradle检查分配所有依赖关系相同的版本..它应该工作..
突出显示错误,然后按“ALT + ENTER”,您将看到一个选项:
添加库依赖项>编辑意向设置
这将带您进入一个菜单,您将看到与support-compat不同的具体问题支持依赖关系。 在gradle(com'XXX')中创build其依赖关系,并将其版本设置为与support-compat相匹配。 同步gradle,你就完成了。