Android : Obtention de l'erreur "Manifest merger failed&quot" 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 ?

Vous utilisez plusieurs versions des bibliothèques de support Android :

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+'

Deux sont 26.0.0-alpha1, et une utilise 25+.

Choisissez une version concrète et utilisez-la pour les trois. Puisque votre compileSdkVersion n'est pas O, utilisez 25.3.1 pour ces trois bibliothèques, ce qui donne le résultat suivant :

compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:cardview-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
Commentaires (7)

J'ai changé toutes les versions de la bibliothèque de support en 25.3.1 et ça a marché comme sur des roulettes :

compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'

Vous devez également modifier compileSdkVersion et targetSdkVersion en 25 :

compileSdkVersion 25
targetSdkVersion 25
Commentaires (2)
  • 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.

Commentaires (0)