web-dev-qa-db-fra.com

android la fusion de manifestes a échoué, gms play services / firebase

J'essaie d'ajouter firebase à mon application à l'aide de firebaseUI. Comme l'indiquent les documentations, j'ai utilisé le gms correspondant: play-services (11.0.4) avec la version de firebaseUI (2.2.0) Lorsque je synchronise les fichiers de niveaux, le message d'erreur suivant s'affiche:

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.

Ceci est mon fichier de classement:

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'

Je me suis assuré que toutes les versions sont à jour et identiques. Vous ne pouvez pas comprendre quel est le problème?

21
fogx

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 recommandait d'ajouter des outils: replace = "Android: value" 'aux méta-données, mais cela jette une autre erreur, alors je vais avec la solution ci-dessus.

47
fogx

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
/>

Ajoutez ensuite ces deux attributs au <manifest ... > tag:

xmlns:tools="http://schemas.Android.com/tools"
tools:node="replace"
22
Mohebifar

Cela se produit parce que deux versions des bibliothèques de support s'entrechoquent. En plus, vous avez déclaré

buildToolsVersion "26.0.1"

et dans les dépendances, la version est 26.0.0

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

Modifiez simplement la version de la bibliothèque de support technique en 26.0.1 et tout fonctionnera correctement. J'ai fait la même chose, j'ai parfaitement travaillé dans mon cas.

16
Swetabja Hazra

ajouter cette ligne à la fin du fichier de classement de niveau d'application

apply plugin: 'com.google.gms.google-services'
1
Syyam Noor

Cela se produit lorsque vous utilisez différentes versions de la même bibliothèque pour l'implémentation dans le module build.gradle de l'application. Vous pouvez résoudre ce problème en implémentant les mêmes versions d'une bibliothèque.

Si le problème persiste, ajoutez le code suivant à la fin de build.gradle (module d'application).

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.0'
            }
        }
    }
}
0
Nikhil Kapu

J'ai pu résoudre en passant le relais sur compile 'com.Android.support:appcompat-v7:26.0.0' et en ajoutant manuellement les bibliothèques qu’il disait erronées, telles 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
Mike Stratmann

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
Sam

Ce type d'erreur est dû à des bibliothèques différentes que vous avez ajoutées. Tout en ajoutant des bibliothèques, assurez-vous qu'elles sont toutes de la même version et fonctionnent parfaitement les unes avec les autres.

0
Sachin Kumar