2012-06-28 19 views
21

Estoy agregando un proyecto de biblioteca Android a mi aplicación de Android (en este caso, Beintoo). No es mío; Es una biblioteca externa. Sin embargo, no viene con un build.xml. Edificio en Eclipse funciona bien, pero cuando intento de construir mi aplicación con la hormiga, me sale esto:Agregar un proyecto de biblioteca Android a un proyecto de Android evita que Ant construya

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 

Es perfectamente cierto. El archivo no es válido porque no existe. No sabría qué hacer para agregarlo de manera segura, ni si es una buena idea.

He aprendido que no puedo simplemente construir el proyecto de la biblioteca en un contenedor. ¿Cómo puedo obtener mi proyecto para construir en Ant con este proyecto de biblioteca?

Respuesta

33

Ok, así, la respuesta de error del 454 estaba cerca, pero no del todo bien. Desde r14 de Herramientas para Android, cada proyecto de biblioteca debe tener su propio build.xml si se va a construir por Ant, como se indica aquí:

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

corriendo android update lib-project (que, como error 454 notas, está en la carpeta android-sdk/tools que debería estar en PATH) en el proyecto de la biblioteca agregará un build.xml genérico y permitirá que se construya el proyecto principal.

+3

¡Gran respuesta! Más específicamente tuve que ejecutar "android update lib-project -p". desde dentro del proyecto de la biblioteca. Esto genera build.xml y proguard-project.txt. – runamok

19

Para proyectos de biblioteca, es necesario para buscar la raíz del proyecto de la biblioteca y ejecute:

android update lib-project -p . 

El androide ejecutable se encuentra en la carpeta SDK/herramientas androide que debe añadirse a la variable de ruta en su OS. Una vez que ejecute esto, se generarán los archivos de compilación necesarios y su compilación de antítesis tendrá éxito.

Del mismo modo, si el proyecto de raíz no tiene los ficheros de construcción necesarios, tendrá que vaya a la raíz principal del proyecto y ejecute:

android update project -p . 
+0

Descubrí y ejecuté "la actualización android lib-project" en el proyecto de la biblioteca, lo que pareció ayudar, pero no tuvo éxito. Hacer su solución en la aplicación arroja una NullPointerException, por lo que hasta que sepa cuál es el problema, no puedo decir qué tan exitoso es en situaciones normales. – AlbeyAmakiir

2

Además de las dos respuestas correctas anteriores, tuve que agregar --target android-16 porque obtenía un "Error: el proyecto no tiene un conjunto de objetivos o el objetivo no es válido".

Así que en mi caso

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

lo hizo. (reemplace el 16 como necesite)

Cuestiones relacionadas