【问题标题】:All com.android.support libraries must use the exact version所有 com.android.support 库必须使用准确的版本
【发布时间】:2017-03-18 08:27:35
【问题描述】:

我遇到了这个问题

所有 com.android.support 库必须使用完全相同的版本 规范(混合版本可能导致运行时崩溃)。成立 版本 24.0.0、23.4.0、23.1.1。例子包括 com.android.support:support-v4:24.0.0 和 com.android.support:cardview-v7:23.4.0

我一直在阅读它herehere

从我收集的信息中,我可以找到“偏移版本”使用

./gradlew -q dependencies app:dependencies --configuration compile

上面的结果是:

compile - Classpath for compiling the main sources.
+--- project :library
|    \--- com.android.support:support-v4:23.1.1 -> 24.0.0
|         \--- com.android.support:support-annotations:24.0.0
+--- com.google.android.gms:play-services-auth:9.8.0
|    +--- com.google.android.gms:play-services-auth-base:9.8.0
|    |    +--- com.google.android.gms:play-services-base:9.8.0
|    |    |    +--- com.google.android.gms:play-services-basement:9.8.0
|    |    |    |    \--- com.android.support:support-v4:24.0.0 (*)
|    |    |    \--- com.google.android.gms:play-services-tasks:9.8.0
|    |    |         \--- com.google.android.gms:play-services-basement:9.8.0 (*)
|    |    \--- com.google.android.gms:play-services-basement:9.8.0 (*)
|    +--- com.google.android.gms:play-services-base:9.8.0 (*)
|    \--- com.google.android.gms:play-services-basement:9.8.0 (*)
+--- com.facebook.android:facebook-android-sdk:4.13.1
|    +--- com.parse.bolts:bolts-android:1.4.0
|    |    +--- com.parse.bolts:bolts-tasks:1.4.0
|    |    \--- com.parse.bolts:bolts-applinks:1.4.0
|    |         \--- com.parse.bolts:bolts-tasks:1.4.0
|    +--- com.android.support:customtabs:23.4.0
|    |    +--- com.android.support:support-annotations:23.4.0 -> 24.0.0
|    |    \--- com.android.support:support-v4:23.4.0 -> 24.0.0 (*)
|    +--- com.android.support:support-v4:23.4.0 -> 24.0.0 (*)
|    \--- com.android.support:cardview-v7:23.4.0
+--- com.google.code.gson:gson:2.3
+--- com.android.support:appcompat-v7:23.1.1
|    \--- com.android.support:support-v4:23.1.1 -> 24.0.0 (*)
+--- com.google.gms:google-services:3.0.0
+--- com.koushikdutta.ion:ion:2.+ -> 2.1.9
|    +--- com.google.code.gson:gson:2.3
|    \--- com.koushikdutta.async:androidasync:2.1.9
+--- com.ivankocijan:MagicViews:1.0.4
+--- com.nineoldandroids:library:2.4.0
+--- com.android.support:multidex:1.0.0
+--- com.crashlytics.sdk.android:crashlytics:2.6.6
|    +--- io.fabric.sdk.android:fabric:1.3.15
|    +--- com.crashlytics.sdk.android:beta:1.2.3
|    |    \--- io.fabric.sdk.android:fabric:1.3.15
|    +--- com.crashlytics.sdk.android:answers:1.3.11
|    |    \--- io.fabric.sdk.android:fabric:1.3.15
|    \--- com.crashlytics.sdk.android:crashlytics-core:2.3.15
|         +--- io.fabric.sdk.android:fabric:1.3.15
|         \--- com.crashlytics.sdk.android:answers:1.3.11 (*)
+--- com.crashlytics.sdk.android:crashlytics-ndk:1.1.5
|    +--- io.fabric.sdk.android:fabric:1.3.14 -> 1.3.15
|    \--- com.crashlytics.sdk.android:crashlytics-core:2.3.13 -> 2.3.15 (*)
\--- com.google.firebase:firebase-core:9.8.0
     \--- com.google.firebase:firebase-analytics:9.8.0
          +--- com.google.android.gms:play-services-basement:9.8.0 (*)
          +--- com.google.firebase:firebase-common:9.8.0
          |    +--- com.google.android.gms:play-services-basement:9.8.0 (*)
          |    \--- com.google.android.gms:play-services-tasks:9.8.0 (*)
          \--- com.google.firebase:firebase-analytics-impl:9.8.0
               +--- com.google.android.gms:play-services-basement:9.8.0 (*)
               +--- com.google.firebase:firebase-iid:9.8.0
               |    +--- com.google.android.gms:play-services-basement:9.8.0 (*)
               |    \--- com.google.firebase:firebase-common:9.8.0 (*)
               \--- com.google.firebase:firebase-common:9.8.0 (*)

分级:

我的问题是。

即使我现在找到了错误版本的依赖项,我该如何更改它?

我尝试使用正确的版本编译它们,但警告仍然存在。

【问题讨论】:

  • 你使用的是什么 buildToolsVersion??
  • 嗨。 compileSdkVersion 23 buildToolsVersion '25.0.0'

标签: android android-studio android-gradle-plugin


【解决方案1】:

您应该使用相同的 compileSdkVersionbuildToolsVersion 作为支持库 例如

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.0"


dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.2.0'
    compile 'com.android.support:design:24.2.0'
    compile 'com.android.support:support-v4:24.2.0'
    compile 'com.android.support:palette-v7:24.2.0'
 }

您可以在此处查看支持库,compiledSdkVersionbuildToolsVersion 使用相同的版本。试试看它是否能解决您的问题。

【讨论】:

  • 实际上这样做我得到了错误:错误:SDK Build Tools 版本(24.0.0)对于项目':xx'来说太低了。最低要求是 25.0.0
  • 好吧,那为什么不改变那个 25.0.0 呢?我的意思是将支持库版本和compiledSdkVersion也更改为25..
  • 是的,这似乎消除了错误,但这会对用户或旧设备产生什么后果?
  • 哦!不,没有什么负面的.. 它们只是支持库和构建工具的较新版本,更适合旧设备,因为它们有新的错误修复和改进。
  • 使用新的 android gradle 插件 3.x,您不再需要为构建工具指定版本(因此,您现在可以删除 android.buildToolsVersion 属性)。默认情况下,插件会自动使用您正在使用的 Android 插件版本所需的最低构建工具版本。
猜你喜欢
  • 2017-07-23
  • 2017-11-12
  • 2018-05-28
相关资源
最近更新 更多