Détails
Android : Obtention de l'erreur "Manifest merger failed"" après la mise à jour vers une nouvelle version de Gradle.
Après avoir accepté de mettre à jour le projet vers la nouvelle version de gradle, je reçois cette erreur :
Error:Execution failed for task ':app:processDebugManifest'.
Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(26.0.0-alpha1) from [com.android.support:cardview-v7:26.0.0-alpha1] AndroidManifest.xml:24:9-38
is also present at [com.android.support:design:25.3.1] AndroidManifest.xml:27:9-31 value=(25.3.1).
Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:22:5-24:41 to override.
Comment puis-je résoudre ce problème ?
Voici le fichier build.gradle
de mon application :
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.sample.bookReader"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
}
...
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:multidex:+'
compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
compile 'com.android.support:cardview-v7:26.0.0-alpha1'
compile 'com.android.support:design:25+'
compile 'com.jakewharton:butterknife:8.2.1'
apt 'com.jakewharton:butterknife-compiler:8.2.1'
...
}
Et voici le fichier build.gradle
du projet :
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.1'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
allprojects {
repositories {
jcenter()
maven { url "https://www.jitpack.io" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Comment puis-je corriger cette erreur tout en conservant les modifications apportées par la mise à jour de la version de gradle ?
107
3
Vous utilisez plusieurs versions des bibliothèques de support Android :
Deux sont
26.0.0-alpha1
, et une utilise25+
.Choisissez une version concrète et utilisez-la pour les trois. Puisque votre
compileSdkVersion
n'est pasO
, utilisez25.3.1
pour ces trois bibliothèques, ce qui donne le résultat suivant :J'ai changé toutes les versions de la bibliothèque de support en 25.3.1 et ça a marché comme sur des roulettes :
Vous devez également modifier compileSdkVersion et targetSdkVersion en 25 :
Mettez à jour votre bibliothèque de support à la dernière version
Ouvrez le
Fichier Manifeste
, et ajoutez le dans le Fichier Manifeste.``
Et ajoutez pour recyclerview dans >>
build.gradle Module app
:`compile 'com.android.support:recyclerview-v7:25.3.1'``
Et cliquez sur :
Sync Now
.