Donc, je suis un débutant dans Android et Java. J'ai juste commencé à apprendre. Pendant que je testais Intent aujourd'hui, j'ai commis une erreur.
Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed with multiple errors, see logs
J'ai trouvé des solutions ici et essayé de les mettre en œuvre, mais cela n'a pas fonctionné.
Ceci est mon build.gradle:
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
defaultConfig {
applicationId "com.example.rohan.petadoptionthing"
minSdkVersion 10
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:23.0.0'
}
Ceci est mon AndroidManifest:
<?xml version="1.0" encoding="utf-8"?>
package="com.example.rohan.petadoptionthing" >
<application
Android:allowBackup="true"
Android:icon="@mipmap/ic_launcher"
Android:label="@string/app_name"
Android:theme="@style/AppTheme" >
<activity
Android:name=".MainActivity"
Android:label="@string/app_name" >
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity Android:name=".Second"
/>
<activity Android:name=".third"/>
<activity Android:name=".MainActivity"/>
</application>
C'est ma première semaine avec le codage, je suis désolé si c'est une chose vraiment stupide. Je suis vraiment nouveau dans ce domaine et je n’ai trouvé aucun autre endroit où poser des questions. Désolé si j'ai enfreint les règles
Supprimez <activity Android:name=".MainActivity"/>
de votre fichier manifeste. Comme vous l'avez déjà défini comme:
<activity
Android:name=".MainActivity"
Android:label="@string/app_name" >
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Donc, fichier manifeste montrant l'ambiguïté.
Ouvrez le manifeste de l'application (AndroidManifest.xml
), cliquez sur Merged Manifest
. Vérifier l'image
Vous pouvez voir l'erreur dans la colonne de droite, essayez de résoudre l'erreur.Il peut aider quelqu'un avec le même problème.Lire plus de ici
Je faisais également face aux mêmes problèmes et, après de nombreuses recherches, j'ai trouvé la solution:
- Votre version de sdk min doit être identique à celle des modules que vous utilisez, par exemple: votre version de sdk min du module est 14 et votre version de sdk min de l'application est 9 Elle devrait être identique.
- Si la version de construction de votre application et les modules ne sont pas identiques. Encore une fois, cela devrait être pareil ** En bref, le fichier et le manifeste de votre application
build.gradle
devraient avoir les mêmes configurations **- Il n'y a pas de duplication, comme les mêmes autorisations ajoutées deux fois dans le fichier manifeste, la même activité mentionnée deux fois.
- Si vous avez supprimé une activité de votre projet, supprimez-la également de votre fichier manifeste.
- Parfois, c'est à cause de l'étiquette, de l'icône, etc., du fichier manifeste:
a) Ajoutez la ligne
xmlns:tools
dans la balise manifeste.b) Ajoutez
tools:replace=
outools:ignore=
dans la balise de l'application.
Exemple:
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.slinfy.ikharelimiteduk"
xmlns:tools="http://schemas.Android.com/tools"
Android:versionCode="1"
Android:versionName="1.0" >
<application
tools:replace="icon, label"
Android:label="myApp"
Android:name="com.example.MyApplication"
Android:allowBackup="true"
Android:hardwareAccelerated="false"
Android:icon="@drawable/ic_launcher"
Android:theme="@style/Theme.AppCompat" >
</application>
</manifest>
- Si deux dépendances n’ont pas la même version exemple: vous utilisez la dépendance pour appcompat v7: 26.0.0 et pour facebook com.facebook.Android:facebook-Android-sdk:[4,5) facebook utilise cardview de la version com.Android.support:cardview-v7:25.3.1 et appcompat v7: 26.0.0 utilise cardview de la version v7: 26.0.0, il existe donc un désordre dans deux bibliothèques et donne donc une erreur
Erreur: L'exécution a échoué pour la tâche ': app: processDebugManifest'.
La fusion du manifeste a échoué: Attribut meta-data#Android.support.VERSION@value value = (26.0.0-alpha1) from [com.Android.support:appcompat-v7:26.0.0-alpha1] AndroidManifest.xml: 27: 9 -38 est également présent sur [com.Android.support:cardview-v7:25.3.1] AndroidManifest.xml: 24: 9-31 valeur = (25.3.1) . Suggestion: ajoutez 'tools: replace = "Android: value"' à l'élément sur AndroidManifest.xml: 25: 5-27: 41 pour remplacer.
Donc, en utilisant appcompat de la version 25.3.1, nous pouvons éviter cette erreur
En tenant compte des points ci-dessus, vous vous débarrasserez de ce problème irritant .. Vous pouvez également consulter mon blog https://wordpress.com/post/dhingrakimmi.wordpress.com/23
Je faisais face au même problème et je viens d'ajouter une ligne dans mon fichier manifest.xml et cela a fonctionné pour moi.
tools:replace="Android:allowBackup,icon,theme,label,name">
ajoutez cette ligne sous
<application
Android:name=".MyApplication"
Android:allowBackup="true"
Android:icon="@drawable/launcher"
Android:label="@string/app_name"
Android:largeHeap="true"
Android:screenOrientation="portrait"
Android:supportsRtl="true"
Android:theme="@style/AppThemecustom"
tools:replace="Android:allowBackup,icon,theme,label">
J'espère que ça va aider.
En plus des solutions disponibles, cochez cette case également.
Si vous avez défini Android:allowBackup="false"
dans votre AndroidManifest.xml
, il peut exister un conflit pour Android:allowBackup="true"
dans d'autres dépendances.
Solution
Comme suggéré par @CLIFFORD P Y, passez à Merged Manifest
dans votre AndroidManifest.xml
. Android Studio suggérera d'ajouter tools:replace="Android:allowBackup"
dans <application />
dans votre AndroidManifest.xml
.
Cela se produit généralement lorsque vous avez des erreurs dans votre manifeste. Ouvrez AndroidManifest.xml. Cliquez sur l'onglet du manifeste fusionné. Les erreurs peuvent être consultées à cet endroit. Vous pouvez également inclure les suggestions mentionnées à cet endroit. .maps.model.LatLng, il m'a suggéré d'inclure les outils: overrideLibrary = "com.google.Android.gms.maps" dans la balise de l'application et la génération a abouti.
J'ai résolu ce problème avec Refactor -> Migrate to AndroidX
GL
Mon cas je l'ai résolu par
defaultConfig { ---------- multiDexEnabled true } dependencies { ........... implementation 'com.google.Android.gms:play-services-gcm:11.0.2' implementation 'com.onesignal:OneSignal:3.+@aar' }
Cette réponse concerne la notification OneSignal Push
This answer releted to OnSignal Push notification
Il suffit d’ajouter le code ci-dessous dans la balise d’application du manifeste de votre projet ...
<application
tools:node="replace">
Dans AndroidManifest.xml
:
tools:replace="Android:icon, Android:theme
etxmlns:tools="http://schemas.Android.com/tools
Dans build.gradle
:
useOldManifestMerger true
Si, après avoir ajouté un Android Library Module et que vous obtenez cette erreur.
Vous pouvez le réparer en supprimant simplement le Android:label="@string/app_name"
du AndroidManifest.xml
de votre Module Bibliothèque Android
Dans mon cas, cela est arrivé pour avoir laissé du intent-filter vide dans la balise Activity
<activity
Android:name=".MainActivity"
Android:label="@string/app_name"
Android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
</intent-filter>
</activity>
Il suffit donc de les supprimer pour résoudre le problème.
<activity
Android:name=".MainActivity"
Android:label="@string/app_name"
Android:theme="@style/AppTheme.NoActionBar">
</activity>
Ouvrez votre console Gradle, puis vous verrez gradle vous suggérer d’ajouter la ligne particulière (type d'outils: remplacer: "Android: allowBackup" ou outils: remplacer: "Android: étiquette", etc.). Ajoutez cette ligne dans votre fichier manifeste sous tag and sync gradle, c'est tout.
ces derniers jours, je traversais également le même problème. Mais après de nombreuses recherches, j'ai finalement trouvé une solution pour cela .
Pour résoudre ce problème, vous devez procéder comme suit:
1. Vérifiez si le fichier build.gradle de votre projet et le fichier build.gradle du module contiennent les mêmes versions de toutes les dépendances .
2. Assurez-vous que compileSdkVersion , buildToolsVersion , minSdkVersion et targetSdkVersion de votre projet correspond à celui des modules ou bibliothèques que vous avez ajoutés. dans le projet.
compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "com.example.appname"
minSdkVersion 16
targetSdkVersion 25
versionCode 22
versionName "2.0.3"
}
J'espère que cela t'aides.
Le hack suivant fonctionne:
xmlns:tools="http://schemas.Android.com/tools"
dans la balise manifestetools:replace="Android:icon,Android:theme,Android:allowBackup,label,name"
dans la balise d'applicationcette erreur très simple ne survient que lorsque vous définissez un appel d'activité deux fois dans le fichier mainifest.xml.
<activity Android:name="com.futuretech.mpboardexam.Game" ></activity>
//and launcher also------like that
//solution:use only one
Dans mon cas, j'utilisais des annotations de la bibliothèque Jetbrains. J'ai supprimé ces annotations et dépendances et cela a bien fonctionné.
Veuillez donc vérifier les bibliothèques dans le code Android et les dépendances avec soin.
En effet, vous utilisez la nouvelle bibliothèque de matériaux avec la bibliothèque de support héritée.
Vous devez migrer Android.support
vers androidx
pour pouvoir utiliser com.google.Android.material
.
Si vous utilisez Android studio v 3.2 ou version ultérieure, il vous suffit de
accédez au refactor ---> MIGRATE TO Android X.
Faites une sauvegarde de votre projet.
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'
}
}
}}
J'utilisais le FirebaseUI Library
avec le Facebook SDK Library
, ce qui me causait le problème.
compile 'com.firebaseui:firebase-ui-database:0.4.4'
compile 'com.facebook.Android:facebook-Android-sdk:[4,5)'
Et de ici , je me suis débarrassé de ce problème.
Avec la latest update
de la bibliothèque FirebaseUI, la version précédente du SDK de Facebook en fait également partie.
Si vous utilisez les deux bibliothèques, veuillez supprimer la bibliothèque du SDK de Facebook.
Effectuez simplement la migration vers Androidx comme indiqué ci-dessus, puis définissez la version minimale du kit SDK sur 26 ... sans aucun doute, cela fonctionne parfaitement.
J'ai résolu ce problème en supprimant la balise Android:replace
En tant que novice sur Android Studio, dans mon cas, j’avais déplacé un projet existant d’Eclipse vers Android Studio et constaté qu’il existait une définition dupliquée d’une activité dans mon fichier Manifest.xml qui n’avait pas été détectée par Eclipse. une erreur de Gradle.
J'ai trouvé cela en allant à la console Gradle (en bas à droite de l'écran).
Si vous utilisez plusieurs manifestPlaceholder
éléments dans votre fichier build.gradle
, vous devez les ajouter en tant qu'éléments de tableau au lieu d'éléments distincts.
Par exemple, cela provoquera une erreur de compilation ou une erreur de compilation: "Java.lang.RuntimeException: la fusion du manifeste a échoué avec plusieurs erreurs":
Android {
...
defaultConfig {
manifestPlaceholders = [myKey1: "myValue1"]
manifestPlaceholders = [myKey2: "myValue2"] // Error!
}
}
Cela corrigera l'erreur:
Android {
...
defaultConfig {
manifestPlaceholders = [myKey1: "myValue1", myKey2: "myValue2"]
}
}
La version minimale de sdk doit être identique à celle des modules/lib que vous utilisez .____ Par exemple: votre version de sdk min du module est 26 et votre version de sdk min de l'application est 21 Elle devrait être identique.
Complétez la réponse, Phan Van Linh. J'ai supprimé ces lignes:
Android:icon="@mipmap/ic_launcher"
Android:label="name"
Il m’est arrivé deux fois quand je réfracteur (Renommer avec SHIFT + F6) le nom d’un champ dans nos fichiers et il vous demande de le changer partout et nous, sans faire attention, changeons le nom partout . Par exemple, si vous avez un nom de variable "id" dans votre classe Java et vous le renommez avec SHIFT + F6. Si vous ne faites pas attention à la boîte de dialogue suivante qui vous demandera où elle va changer l'identifiant et si vous cochez la case Tout cocher, cela changera tout l'identifiant de vos fichiers de disposition à partir de la nouvelle valeur.
j'ai résolu ce problème en supprimant la ligne ci-dessous de AndroidManifest.xml
Android:allowBackup="true"