Le nom d'entrée 'AndroidManifest.xml' est entré en collision (la construction a échoué après la mise à jour du plugin Android Gradle vers 3.6.0)

11

J'ai récemment mis à jour le studio Android de 3.5 (stable) à 3.6 (stable).

Ensuite, j'ai vu que la mise à jour du plugin est également disponible, j'ai donc mis à jour la version de "com.android.tools.build:gradle" de 3.5.0 à 3.6.0 et également à jour la version gradle à 5.6.4

Le problème commence maintenant lorsque j'essaie de créer le projet, il échoue avec le message Nom d'entrée 'AndroidManifest.xml' entré en collision

entrez la description de l'image ici

Rikin Prajapati
la source
pouvez-vous ajouter une image d'erreur pour une meilleure compréhension?
Praful Korat
Causée par: java.lang.IllegalStateException: le nom d'entrée 'AndroidManifest.xml' est entré en collision à com.android.zipflinger.ZipArchive.validateName (ZipArchive.java:302) à com.android.zipflinger.ZipArchive.writeSource (ZipArchive.java:246 ) sur com.android.zipflinger.ZipArchive.add (ZipArchive.java:126) sur com.android.signflinger.SignedApk.add (SignedApk.java:135) ... sur org.gradle.internal.work.DefaultConditionalExecutionQueue $ ExecutionRunner .run (DefaultConditionalExecutionQueue.java:131) ... 3 autres
T. Aslam
J'ai le même problème. J'exécute "./gradlew assembleDebug --debug" et j'obtiens ce journal d'erreurs "Tâche: app: packageDebug FAILED". Cela pourrait être quelque chose de mal avec le nouvel outil d'emballage. Génération réussie après l'avoir désactivée en ajoutant "android.useNewApkCreator = false" dans le fichier gradle.properties
Peter
même ici .. après la mise à jour d'Android Studio en 3.6 et la mise à jour de tous les plugins disponibles, ce problème apparaît lorsque vous essayez d'exécuter l'application et de reconstruire le projet. Le nom d'entrée 'AndroidManifest.xml' est entré en collision, je ne sais pas quoi faire.
Espada
Veuillez consulter la réponse similaire stackoverflow.com/a/60469132/10646780
Jatin Sahgal

Réponses:

23

Cela est dû au plug-in Android Gradle 3.6, revenez à l'utilisation de l'ancien outil d'emballage en incluant les éléments suivants dans votre fichier gradle.properties pour résoudre ce problème:

android.useNewApkCreator=false

Pour plus d'informations, veuillez consulter la note de publication: https://developer.android.com/studio/releases/gradle-plugin#zipflinger

xfx
la source
1
où devez-vous ajouter cela exactement?
Rami Ammoun
1
gradle.properties
sweggersen
Ceci est une réponse utile. Cela pourrait être encore mieux s'il y avait une explication de ce que le nouvel outil n'aime pas.
Jameson
J'allais tous les ninja sur cette question en nettoyant mon projet. Invalider et redémarrer un million de fois. Merci d'avoir aidé. En outre, mon erreur était: le nom de l'entrée 'kotlin / collections / MapWithDefault.kotlin_metadata' est entré en collision
Karan Sharma
6

J'ai trouvé une solution de contournement en ajoutant ceci au build.gradle de l'application:

android {
    packagingOptions {
        exclude 'AndroidManifest.xml'
    }
}

J'ai eu cela pour résoudre un problème avec la création d'un bundle, en raison du réseau d'audience de Facebook, sur Android Studio 3.5.

Marco Batista
la source
3

J'obtiens une erreur similaire: le nom d'entrée «resources.arsc» est entré en collision. Solution de contournement comme @Marco Batista l'a dit:

android {
    packagingOptions {
        exclude 'resources.arsc'
    }
}
android_su
la source