web-dev-qa-db-fra.com

Conflit de dépendance de Facebook Android sdk

J'utilise les bibliothèques facebook-Android-sdk:4.20.+ et com.Android.support qui entrent en conflit avec le message d'erreur: 

All com.Android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 25.2.0, 25.0.0. Examples include com.Android.support:animated-vector-drawable:25.2.0 and com.Android.support:customtabs:25.0.0 less... (⌘F1) 
There are some combinations of libraries, or tools and libraries, that are incompatible, or can lead to bugs. One such incompatibility is compiling with a version of the Android support libraries that is not the latest version (or in particular, a version lower than your targetSdkVersion.)

Voici mes dépendances.

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.Android.support', module: 'support-annotations'
    })
    compile files('libs/YouTubeAndroidPlayerApi.jar')

    compile 'com.Android.support:appcompat-v7:25.2.0'
    compile 'com.Android.support:customtabs:25.0.0'
    compile 'com.Android.support:design:25.+'
    compile 'com.Android.support:cardview-v7:25.+'
    compile 'com.Android.support:recyclerview-v7:25.+'
    compile 'com.fasterxml.jackson.core:jackson-core:2.7.4'
    compile 'com.fasterxml.jackson.core:jackson-annotations:2.7.4'
    compile 'com.fasterxml.jackson.core:jackson-databind:2.7.4'
    compile 'org.jsoup:jsoup:1.8.3'
    compile 'com.github.bumptech.glide:glide:3.7.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.Android.support.constraint:constraint-layout:1.0.2'
    compile 'commons-io:commons-io:2.4'
    compile 'com.google.Android.gms:play-services-analytics:10.0.1'
    compile 'com.facebook.Android:facebook-Android-sdk:4.+'
    testCompile 'junit:junit:4.12'
}

Lors de l’exécution d’un rapport sur les dépendances de niveaux avec: ./gradlew -q dependencies app:dependencies --configuration compile, voici les résultats pour facebook-Android-sdk

+--- com.facebook.Android:facebook-Android-sdk:4.+ -> 4.20.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 -> 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
|         +--- com.parse.bolts:bolts-tasks:1.4.0
|         \--- com.parse.bolts:bolts-applinks:1.4.0
|              \--- com.parse.bolts:bolts-tasks:1.4.0

Quelle est la bonne combinaison de dépendances que je dois utiliser? 

12
jay

Dans votre cas spécifique, le problème vient du fait que le sdk de facebook a une dépendance avec com.Android.support:customtabs:25.0.0 et que cette version est ancienne et que votre version actuelle de la bibliothèque de support est 25.2.0.

Comme vous pouvez le voir sur le graphique de dépendance, les versions les plus récentes de cardview-v7, appcompat-v7 et support-v4 sont déjà utilisées. Vous pouvez donc essayer d'ajouter: 

compiler 'com.Android.support:customtabs:25.2.0'

aux dépendances de sorte que la version plus récente de customtabs soit également utilisée par le sdk de facebook.

Cette réponse pourrait être utile aussi: Erreur de gradle après avoir inclus facebook sdk

17
PedroHidalgo

La réponse précédente n'a pas résolu mon problème. Mais sur la base de cette réponse conflit de dépendance du SDK de Facebook cela fonctionne.

0
William Cuervo