web-dev-qa-db-fra.com

Le nom de l'entrée "AndroidManifest.xml" est entré en collision (la compilation a échoué après la mise à jour du plugin Android gradle plugin vers 3.6.0))

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

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

Maintenant, le problème commence lorsque j'essaye de construire le projet; il échoue avec le message Le nom de l'entrée 'AndroidManifest.xml' est entré en collision

enter image description here

15
Rikin Prajapati

Il existe quelques méthodes pour résoudre ce problème.

  1. Rétablir la version build.gradle en 3.5.3

    dependencies {
           // classpath 'com.Android.tools.build:gradle:3.6.1'       
              classpath 'com.Android.tools.build:gradle:3.5.3'
            }
    
  2. Ajouter des options de packaging sous app/build.gradle

    Android {
       ...
    
      packagingOptions {
          exclude 'AndroidManifest.xml'
      }
    
     }
    
  3. Sous gradle.properties, définissez seNewApkCreator sur false. L'ajout de cet indicateur peut entraîner des problèmes d'installation d'apk.

    Android.useNewApkCreator=false
    

Approche finale, effectuez une analyse dans une bibliothèque tierce. Vérifiez androidx.core: core-ktx plugin. Essayez de mettre à jour vers la version 1.2.0 ou une version plus récente.

0
RayChongJH

J'ai eu le même problème avec AndroidManifest.xml fichiers en collision. Tout d'abord, j'ai essayé la solution de contournement useNewApkCreator et cela a fonctionné sur la variante d'application sur laquelle je travaillais. Mais lorsque je suis passé à une autre variante, la construction était toujours réussie, mais l'application a refusé de s'installer à partir de Android Studio. L'installation manuelle du .apk a également donné une erreur d'analyse sur l'appareil.

Enfin, j'ai analysé les .apks des deux variantes et j'ai remarqué que le .apk cassé contenait le mauvais AndroidManifest.xml. L'exclusion du manifeste dans packagingOptions a cependant fonctionné.

0
JulleR