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