JPJens
JPJens

Reputation: 1205

All com.android.support libraries must use the exact version

I came across this issue

All com.android.support libraries must use the exact same version specification (mixing version can lead to runtime crashes). Found versions 24.0.0, 23.4.0, 23.1.1. Examples include com.android.support:support-v4:24.0.0 and com.android.support:cardview-v7:23.4.0

I have been reading about it here and here

From what i gather i can find the "offset version" using

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

The above then results in:

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

Gradle:

enter image description here

My question is.

Even if i have now found the dependencies with the wrong version, how can i change that ?

I have tried to compile them using the correct version, but the warning remains.

Upvotes: 1

Views: 4113

Answers (1)

Ashish Walia
Ashish Walia

Reputation: 456

You should use same compileSdkVersion and buildToolsVersion as Support library e.g.

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

You can see here Support Library, compiledSdkVersion and buildToolsVersion use same version. Just try it and see if it fixes your issues.

Upvotes: 2

Related Questions