Après avoir accepté de mettre à jour le projet vers la nouvelle version de Gradle, 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-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 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 corriger cette erreur tout en conservant les modifications apportées en mettant à jour la version de Gradle?
Mettez ceci à la fin de votre module d'application build.gradle:
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'
}
}
}
}
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 un 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:
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'
J'ai changé toutes les versions de la bibliothèque de support en 25.3.1 et j'ai travaillé comme un charme:
compile 'com.Android.support:appcompat-v7:25.3.1'
compile 'com.Android.support:design:25.3.1'
Vous devez également modifier compileSdkVersion et targetSdkVersion à 25:
compileSdkVersion 25
targetSdkVersion 25
Vous pouvez trouver quelle bibliothèque dépend d'une version incorrecte de la bibliothèque de support et l'exclure de la manière suivante:
compile ('com.stripe:stripe-Android:5.1.1') {
exclude group: 'com.Android.support'
}
stripe-Android
dans mon cas.
Je n'utilise pas différentes versions de bibliothèques et j'ai la même erreur, c'est ce qui s'est passé après la suppression de buildToolsVersion
dans AS RC 1, mais l'ajout de tools:node="replace"
a tout mis en œuvre. Ajoutez simplement ceci dans votre fichier manifest.xml à l'intérieur du bloc <application ..../>
:
<meta-data
tools:node="replace"
Android:name="com.google.Android.gms.version"
Android:value="@integer/google_play_services_version" />
Cela m'arrive la même chose. Voir Gradile -> Construire Gradle -> et assurez-vous que la compatibilité correspond aux deux lignes de compilation "app compat" et "support design", elles doivent avoir la même version.
Ensuite, pour être absolument sûr qu'il se lancera sans problème, allez dans Fichier -> Structure du projet -> application et vérifiez la propriété de la version des outils de compilation, elle devrait être identique à votre ligne de compilation de support, juste au cas où je m la version cible du SDK ainsi que sur l'onglet Flavors.
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.Android.support.test.espresso:espresso-
core:2.2.2', {
exclude group: 'com.Android.support', module: 'support-annotations'
})
*compile 'com.Android.support:appcompat-v7:25.3.1'*
compile 'com.Android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
*compile 'com.Android.support:design:25.3.1'*
}
C'est ce que j'ai fait et travaillé. Bonne chance!
Mettez à jour votre bibliothèque de support avec la dernière version
Ouvrez Manifest File
et ajoutez-le dans le fichier manifeste
<uses-sdk tools:overrideLibrary="Android.support.v17.leanback"/>
Et ajoutez pour recyclage dans >> build.gradle Module app
:
compile 'com.Android.support:recyclerview-v7:25.3.1'
Et cliquez sur: Sync Now
Je résous cela en mettant ceci à la fin de mon module d'application build.gradle:
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'
}
}
}
}
La réponse est acceptée, mais vous pouvez également définir les bibliothèques à partir de la structure de votre projet. Ce que vous pouvez faire c'est:
Ce qui se passe, c'est que les bibliothèques prédéfinies sont désactivées maintenant. Je prends le appcompat: 26.0.0-alpha1 il utilise l'ancienne version des choses lorsque vous ajoutez quelque chose de nouveau et tente de le résoudre avec les anciens fichiers. Lorsque vous l'ajoutez à partir de la structure de votre projet, il ajoute la même chose, mais avec les nouveaux éléments pour le résoudre. Votre problème serait résolu.
J'ai mis à jour l'ancien projet Android pour Wear OS. J'ai reçu ce message d'erreur pendant la construction du projet:
Manifest merger failed : Attribute meta-data#Android.support.VERSION@value value=(26.0.2) from [com.Android.support:percent:26.0.2] AndroidManifest.xml:25:13-35
is also present at [com.Android.support:support-v4:26.1.0] AndroidManifest.xml:28:13-35 value=(26.1.0).
Suggestion: add 'tools:replace="Android:value"' to <meta-data> element at AndroidManifest.xml:23:9-25:38 to override.
Mon application build.gradle for Wear contient les dépendances suivantes:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.Android.support:wearable:2.4.0'
implementation 'com.google.Android.gms:play-services-wearable:16.0.1'
compileOnly 'com.google.Android.wearable:wearable:2.4.0'}
SOLUTION:
Ajouter implementation 'com.Android.support:support-v4:28.0.0'
dans les dépendances a résolu mon problème.
Essayez de supprimer les métadonnées et de reconstruire le projet.
L'erreur pour moi était:
Manifest merger failed : Attribute meta-data#Android.support.VERSION@value value=(26.0.2) from [com.Android.support:percent:26.0.2] AndroidManifest.xml:25:13-35
is also present at [com.Android.support:support-v4:26.1.0] AndroidManifest.xml:28:13-35 value=(26.1.0).
Suggestion: add 'tools:replace="Android:value"' to <meta-data> element at AndroidManifest.xml:23:9-25:38 to override.
La solution pour moi était dans mon fichier de projet Gradle dont j'avais besoin pour modifier ma version de com.google.gms: google-services.
J'utilisais la version 3.1.1:
classpath 'com.google.gms:google-services:3.1.1
Et l'erreur résolue après que je l'aie remplacé par la version 3.2.1:
classpath 'com.google.gms:google-services:3.2.1
Je venais de mettre à niveau toutes mes bibliothèques vers la dernière version, y compris la v27.1.1 de toutes les bibliothèques de support et la v15.0.0 de toutes les bibliothèques de Firebase lorsque j'ai vu l'erreur.