34 votes

Comment corriger "Erreur lors de la génération de l'archive finale : entrée en double : AndroidManifest.xml"

J'ai mis deux projets dans Eclipse, appelés Project1 et Project2.

Le projet 1 est indépendant, mais le projet 2 doit être dépendant du projet 1.

Quand je construis le Project2, le msg d'erreur vient comme ceci : Error generating final archive : duplicate entry : AndroidManifest.xml

53voto

Matt Huggins Points 16854

J'ai trouvé quel était le problème. J'ai inclus un fichier JAR qui contenait un fichier AndroidManifest.xml, qui entrait en conflit avec le fichier AndroidManifest.xml de mon propre projet. La solution dans mon cas a été de reconstruire le fichier JAR, en s'assurant qu'il excluait sa propre version d'AndroidManifest.xml, puis de ré-inclure la nouvelle version du fichier JAR dans mon projet. Vous devrez peut-être nettoyer le projet après avoir effectué cette opération.

3voto

duongvanthai Points 1172

Je pense que vous utilisez Project1 comme Bibliothèque. Donc, lorsque vous exportez le fichier jar, vous devez désélectionner AndroidManifest.xml dans "Select the resource to export".

1voto

user1378052 Points 11

J'ai obtenu un deuxième fichier AndroidManifest.xml (non gracieux) en incluant un paquet Android.R au lieu du paquet com.example.mypackage.R.

Symptômes : la construction semblait fonctionner, mais le lancement montrait l'erreur existante dans l'espace de travail, qui devait d'abord être corrigée. Un AndroidManifest.xml a été trouvé dans les classes, l'autre dans un fichier appelé resources.ap_ . J'ai simplement fixé rapidement (inclure Android.R) workspace à l'enfer.

edit : n'a pas fonctionné non plus, espace de travail toujours en enfer ; problèmes dans les projets, qui ont aimé être corrigés...

edit1 : je ne trouve pas le paquet, qui devrait contenir le AndroidManifest.xml.

edit2 : Je considère assumer le deuxième fichier Manifest dans Android.jar - il semble que chaque fichier Manifest donne lieu à la génération de 1 R.class. J'ai effacé l'espace de travail complet. Parce que c'était un terrain de jeu de toute façon. (Puis j'ai mis en place Git.)

0voto

Seva Alekseyev Points 31812

Nettoyer le Project1 pourrait aider.

0voto

kmchugh12 Points 331

Il est possible que vous ayez des dépendances de compilation similaires dans votre projet de bibliothèque et votre projet d'application et que le programme dex-er ne reconnaisse pas les doublons.

Si c'est le cas, modifiez la portée des dépendances dans votre projet d'application en fonction de la portée fournie.

Les dépendances seront incluses car elles se trouvent dans le projet de bibliothèque, et elles ne seront pas dupliquées car elles sont "fournies" lors de la compilation du projet d'application.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X