web-dev-qa-db-fra.com

Utilisation de la nouvelle propriété "manifestmerger" dans Android

Dans la dernière version d'ADT (version 20 preview 3), ils disent qu'il est possible de faire fusionner le fichier manifeste des bibliothèques avec les projets qui les utilisent:

Fusion automatique des fichiers manifestes du projet de bibliothèque dans le manifeste du projet inclus. Activez avec la propriété manifestmerger.enabled.

Comment et où dois-je l'utiliser? Je ne vois aucun contenu qui m'aide à ce sujet.

43
android developer

Ajoutez la ligne suivante à votre fichier project.properties De votre projet d'application.

manifestmerger.enabled=true 

Introduit avec Android SDK Tools, Revision 20 (June 2012):
https://developer.Android.com/studio/releases/sdk-tools

Build System
* Ajout de la fusion automatique des fichiers manifestes du projet de bibliothèque dans le manifeste du projet inclus. Activez cette fonction avec la propriété manifestmerger.enabled.

64
Kevin McMahon

Si vous souhaitez fusionner Android et votre manifeste de projet actuel, vous devez ajouter manifestmerger.enabled=true dans votre fichier project.properties où vous avez référé votre projet de bibliothèque. Mais, vous devriez être confirmé un certain point comme la version ADT, également minimum et le SDK cible devraient être les mêmes que le projet de bibliothèque.

9
Ratna Halder

FYI: manifestmerger.enabled = true ne fusionnera pas les fichiers manifestes si vous utilisez l'application signée d'exportation Eclipse. Comme indiqué ici, cela semble être un bug. http://code.google.com/p/Android/issues/detail?id=3462

C'était aussi un peu compliqué pour moi de configurer la fusion correctement. (redémarrer Eclipse, ouvrir fermer le projet ..) Pour savoir si la fusion fonctionne, consultez le fichier dans ../Your_Main_Project/bin/AndroidManifest.xml. Si la fusion a fonctionné, vous verrez le résultat complet dans ce fichier.

EDIT: Ce bogue a été corrigé dans ADT v20.0.1 (Juli 2012): http://developer.Android.com/tools/ sdk/Eclipse-adt.html

5
Vadimo

Je faisais face à des erreurs lors de la fusion du manifeste (le fichier R.Java était manquant), j'ai donc alternativement copié explicitement le contenu du manifeste (par exemple, je n'ai copié que le contenu de l'activité) à partir du manifeste du projet de bibliothèque et les ai placé dans le manifeste principal de votre projet. Cela a résolu l'erreur et tout semble bien fonctionner jusqu'à présent. Faites-moi savoir si quelqu'un pense que ce n'est pas une alternative recommandée à la fusion manifeste.

2
Sid M