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?
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'
}
}
}
}
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
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.
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"
ajoutez cette ligne à la fin de l'application du niveau de gradle fichier
apply plugin: 'com.google.gms.google-services'
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'
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".