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


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


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.


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'
    }
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.