Je continue à voir ce message et je ne sais pas comment le résoudre pour de bon.
Error:(43, 9) Attribute application@icon value=(@drawable/new_app_icon) from AndroidManifest.xml:43:9
is also present at com.github.erizet.signala:signala-longpolling:0.20:7:18 value=(@drawable/ic_launcher)
Suggestion: add 'tools:replace="Android:icon"' to <application> element at AndroidManifest.xml:40:5 to override
:OpenBook:processDebugManifest FAILED
Error:Execution failed for task ':OpenBook:processDebugManifest'.
> Manifest merger failed with multiple errors, see logs
J'ai essayé d'ajouter Android:replace="Android:icon"
à mon manifeste, même avec mon icône.
J'ai essayé de supprimer le Android:icon="@drawable/ic_launcher
de la bibliothèque, mais il revient toujours lorsque je le construit car il est importé de maven
Des idées ?
Cela semble être la faute de l'outil de fusion Mainfest pour Gradle.
http://tools.Android.com/tech-docs/new-build-system/user-guide/manifest-merger
Résolu en ajoutant à ma balise manifeste xmlns:tools="http://schemas.Android.com/tools"
Puis ajouté tools:replace="Android:icon,Android:theme"
à la balise d'application
Cela indique à la fusion d'utiliser mon icône de manifeste et mon thème et non ceux d'autres bibliothèques.
J'espère que ça aide merci
J'ai le même problème, je le répare comme ceci en ajoutant xmlns:tools="http://schemas.Android.com/tools"
en haut du fichier mainfest et en ajoutant tools:replace="Android:icon"
pour ressembler à
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools" // add tools line here
package="yourpackage">
<application
Android:allowBackup="true"
Android:icon="@mipmap/ic_launcher"
Android:label="@string/app_name"
Android:supportsRtl="true"
Android:theme="@style/AppTheme"
tools:replace="Android:icon"> ///add this line
.....
</application>
</manifest>
La réponse de shimi_tap suffit… .. Ce qu'il faut retenir, c'est de choisir uniquement ce dont vous avez besoin. Choisissez parmi {icône, nom, thème, étiquette} . J'ai ajouté tools:replace="Android:icon,Android:theme"
, cela ne fonctionne pas. J'ai ajouté tools:replace="Android:icon,Android:theme,Android:label,Android:name"
, cela ne fonctionne pas. Cela fonctionne quand j'ai ajouté tools:replace="Android:icon,Android:theme,Android:label"
. Recherchez donc le conflit dans vos fichiers de manifeste.
Ajoutez simplement xmlns:tools="http://schemas.Android.com/tools"
à votre balise de manifeste. Et puis vous devez ajouter tools:replace="Android:icon"
_BEFORE_Android:icon="@mipmap/ic_launcher"
. Bonne chance! :RÉ
Cette erreur se produit également lorsque le minSdk de votre application est supérieur au minSdk d'une bibliothèque.
app's minSdk >= libraries minSdk
OBTENU LA SOLUTION APRÈS BEAUCOUP DE TEMPS GOGLING
récupérez simplement votre ic_launcher et collez-le dans votre dossier drawables,
Allez dans votre manifeste et changez Android: icon = "@ drawable/ic_launcher"
Nettoyez votre projet et reconstruisez
J'espère que ça vous aide
J'ai eu ce problème en changeant l'icône de drawable à mipmap.
J'ai seulement raté la ligne
tools:replace="Android:icon"
dans le manifeste.
Pour une raison quelconque, Android studio n'aime pas appeler l'icône de l'application depuis un dossier pouvant être dessiné. Donc, dans ce cas, j’ai créé le répertoire de ressources mipmap sous le dossier res.
Cliquez avec le bouton droit de la souris sur le dossier res> nouveau> répertoire de ressources Android> type de ressource: mipmap et déposez-y une icône, puis faites-en référence dans le fichier manifeste. Partager cela depuis que cette méthode a fonctionné pour moi.
Android: icon: @ drawable/ic_launcher "
à
Android: icon = "@ mipmap/ic_launcher"
Si rien ne fonctionne, fermez Android Studio. Allez sur app/src/main, ouvrez le fichier AndroidManifest.xml dans un éditeur de texte (comme sublime), supprimez/remplacez les lignes des erreurs, enregistrez et rouvrez Android Studio.
Lorsqu'une valeur d'attribut contient un espace réservé (voir le format ci-dessous), le La fusion manifeste échangera cette valeur de substitution avec une valeur injectée valeur. Les valeurs injectées sont spécifiées dans le build.gradle. La syntaxe pour les valeurs d’espace réservé est $ {name} puisque @ est réservé aux liens. Après la dernière fusion de fichier a eu lieu et avant la fusion résultante Le fichier de manifeste Android est écrit, toutes les valeurs avec un espace réservé sera échangé avec les valeurs injectées. Un bris de construction sera généré si un nom de variable est inconnu.
de http://tools.Android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC-Build-error
Dans votre .gradle
, modifiez MinSDK, par exemple:
build.gradle
(module: app) minSdkVersion 9
minSdkVersion 14
etc.
La réponse de Shimi_tap est la bonne façon de résoudre le problème. Si vous souhaitez utiliser l'ancien outil de fusion, vous pouvez l'ajouter au fichier build.gradle.
Android { useOldManifestMerger true }
dans Manifest.xml:
coplete tools: replace = "Android: appComponentFactory"> comme ceci
tools:replace="tools:replace="Android:appComponentFactory,Android:icon,Android:theme,Android:label,Android:name" to the application tag
Pour moi, ce problème est survenu après la mise à jour des services Google Play. L'une des bibliothèques que j'utilisais a incorporé cette bibliothèque en utilisant le "+" dans sa référence de niveau, comme
compile 'com.google.Android.gms:play-services:+'
Cela créait un problème, car la version minimale ciblée par cette bibliothèque était inférieure à celle ciblée par la version actuelle des services Google Play. J'ai trouvé cela simplement en regardant dans les journaux.