2012-06-28 6 views
21

J'ajoute un projet de bibliothèque Android à mon application Android (dans ce cas, Beintoo). Ce n'est pas le mien; C'est une bibliothèque externe. Cependant, il ne vient pas avec un build.xml. Bâtiment dans Eclipse fonctionne très bien, mais quand je tente de construire mon application avec fourmi, je reçois ceci:Ajout de projet de bibliothèque Android à un projet android empêche Ant de construire

BUILD FAILED 
C:\Sandbox\MyProject\build.xml:110: The following error occurred while executing this line: 
C:\Sandbox\MyProject\build.xml:41: The following error occurred while executing this line: 
C:\Program Files (x86)\Android\android-sdk\tools\ant\build.xml:515: Invalid file: C:\Git\Beintoo-Android\beintoo-android-sdk\BeintooSDK\build.xml 

Il est parfaitement vrai. Le fichier est invalide, car il n'existe pas. Je ne saurais pas quoi faire pour l'ajouter en toute sécurité, ni même si c'est une bonne idée.

J'ai appris que je ne peux pas simplement construire le projet de bibliothèque dans un pot. Comment puis-je obtenir mon projet pour construire dans Ant avec ce projet de bibliothèque?

Répondre

33

Ok, donc, erreur 454 de la réponse était proche, mais pas tout à fait juste. Depuis r14 des outils Android, chaque projet de bibliothèque doit avoir son propre build.xml si elle doit être construite par Ant, comme indiqué ici:

https://groups.google.com/forum/?fromgroups#!topic/adt-dev/Z2e3dY-3Ma0

Exécution de la fonctionnalité android update lib-project (qui, comme erreur 454 notes, est le dossier android-sdk/tools qui devrait être dans PATH) sur le projet de bibliothèque ajoutera un build.xml générique, et permettra au projet principal de se construire.

+3

Bonne réponse! Plus précisément, j'ai dû exécuter "android update lib-project -p". à partir du projet de bibliothèque. Cela génère build.xml et proguard-project.txt. – runamok

19

Pour les projets de bibliothèque, vous devez parcourir à la racine du projet de bibliothèque et exécuter:

android update lib-project -p . 

Le android exécutable est dans le dossier sdk/outils Android qui devrait être ajouté à votre variable de chemin dans votre OS Une fois que vous exécutez ceci, les fichiers de construction nécessaires seront générés et votre construction ant devrait réussir.

De même, si votre projet racine ne possède pas les fichiers de construction nécessaires, vous devrez parcourir la principale racine du projet et exécutez:

android update project -p . 
+0

J'ai découvert et couru "android mettent à jour lib-project" sur le projet de bibliothèque, qui a semblé aider, mais pas complètement réussi. Faire votre solution sur l'application lance une exception NullPointerException, donc jusqu'à ce que je trouve ce problème, je ne peux pas dire à quel point il est réussi dans des situations normales. – AlbeyAmakiir

2

En plus des deux bonnes réponses précédentes, j'ai dû ajouter --target android-16 parce que je recevais un "Erreur: Le projet n'a pas de jeu cible ou la cible est invalide."

Donc dans mon cas

android update lib-project -p . --target android-16 

a fait. (remplace le 16 comme vous avez besoin)

Questions connexes