Fusion manifeste android échoué, GMS play services / firebase

j'essaie d'ajouter firebase à mon application en utilisant le firebaseUI. comme le disent les documentations, j'ai utilisé les gms correspondants:play-services (11.0.4) avec la version firebaseUI (2.2.0) Quand je synchroniser le gradle fichiers, je reçois l'erreur suivante:

Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(26.0.0) from [com.android.support:support-v13:26.0.0] AndroidManifest.xml:28:13-35
    is also present at [com.android.support:customtabs:25.4.0] AndroidManifest.xml:25:13-35 value=(25.4.0).
    Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:26:9-28:38 to override.
<!-C'est mon fichier gradle:

android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
    applicationId "com.test.test"
    minSdkVersion 21
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])


compile 'com.android.support:appcompat-v7:26.0.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:cardview-v7:26.0.0'
compile 'com.android.support:support-v13:26.0.0'
compile 'com.android.support:design:26.0.0'
compile 'com.android.support:recyclerview-v7:26.0.0'

//firebase
compile 'com.google.android.gms:play-services-auth:11.0.4'
compile 'com.google.firebase:firebase-core:11.0.4'
compile 'com.google.firebase:firebase-auth:11.0.4'
compile 'com.google.firebase:firebase-database:11.0.4'
compile 'com.google.firebase:firebase-storage:11.0.4'
compile 'com.firebaseui:firebase-ui:2.2.0'

testCompile 'junit:junit:4.12'
}

//firebase
apply plugin: 'com.google.gms.google-services'

j'ai veillé à ce que toutes les versions soient à jour et qu'elles soient toutes identiques. Ne pouvez pas comprendre quel est le problème?

17
demandé sur fogx 2017-08-07 21:02:54

6 réponses

j'ai résolu le problème en ajoutant:

    configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '26.0.0'
            }
        }
    }
}

à partir d'ici.

L'info-bulle recommandé l'ajout d'outils:replace="android:la valeur de" méta-données, mais cela jette une autre erreur, donc je vais y avec la solution ci-dessus

42
répondu fogx 2017-08-08 03:52:20

C'est parce que deux versions des bibliothèques de support se heurtent. Sur le dessus, vous avez déclaré

buildToolsVersion "26.0.1"

et sur les dépendances, la version est 26.0.0

compile 'com.android.support:design:26.0.0'

il suffit de changer la version de la bibliothèque de soutien à 26.0.1 et il fonctionnera très bien. J'ai également fait la même chose, travaillé sans faille dans mon cas.

14
répondu Swetabja Hazra 2017-09-01 22:23:07

je l'ai résolu en ajoutant ceci dans AndroidManifest.xml dans le <application> balise tout en bas:

<meta-data 
  tools:node="replace"
  android:name="android.support.VERSION"
  android:value="26.1.0"  // <- The max version you see in the error message. For me it was 26.1.0
/>

puis ajoutez ces deux attributs à <manifest ... > balise:

xmlns:tools="http://schemas.android.com/tools"
tools:node="replace"
14
répondu Mohebifar 2018-08-20 21:48:18

ajoutez cette ligne à la fin de l'application du niveau de gradle fichier

apply plugin: 'com.google.gms.google-services'
1
répondu Syyam Noor 2017-09-19 10:26:53

j'ai été capable de résoudre en hoovering plus compile 'com.android.support:appcompat-v7:26.0.0' et ajouter manuellement les bibliothèques qu'il a dit était erroné tel que

compile 'com.android.support:cardview-v7:26.0.0'
compile 'com.android.support:animated-vector-drawable:26.0.0'
compile 'com.android.support:customtabs:26.0.0'
0
répondu Mike Stratmann 2017-08-16 19:52:59

ajoutez cette ligne à votre manifeste

 <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"
        tools:replace="android:value" />

exactement comme indiqué dans la balise" application".

0
répondu Sam 2017-09-29 17:41:45