2011-02-27 30 views
23

Tengo un proyecto de Android que tiene un archivo de compilación Ant. Funciona a la perfección a través de la línea de comandos:Usando Android build.xml en eclipse?

[email protected]:~/git/$ ant 
Buildfile: build.xml 
    [setup] Android SDK Tools Revision 8 
    [setup] Project Target: Android 2.1-update1 
    [setup] API level: 7 
    [setup] 

    ... etc etc etc ... 

Pero cuando trato de utilizar esto en eclipse, build.xml tiene un color rojo-X.

<?xml version="1.0" encoding="UTF-8"?> 
<project name="MyWonderfulProject" default="help"> 

<project está subrayado con el error: ayuda objetivo defecto no existe en este proyecto

Parece como todo el mundo en Internet tiene este problema, y ​​parece que es causada por el hecho que build.xml usa directivas que provienen de los múltiples archivos anidados específicos de Android que importa este archivo de compilación.

tengo otros proyectos en mi área de trabajo que utilice mecanismo de acumulación de Eclipse, así que sé que mi entorno es capaz de compilar, ejecutar y desplegar aplicaciones Android sin un problema. Pero este archivo de compilación me está dando dolores de cabeza.

¿Cuál es la solución?

Respuesta

0

Si su build.xml tiene su propio objetivo de ayuda en lugar de depender de la importada, entonces usted necesita para poner ese objetivo antes de la línea

<taskdef name="setup" classname="com.android.ant.SetupTask" classpathref="android.antlibs" /> 
+1

Tengo un problema similar, y no tienen ningún objetivo ayuda autodefinida. se debe usar el objetivo de ayuda de android_rules.xml, pero incluso pegarlo en el archivo build.xml no resuelve este error. (eclipse 3.6, android skd 10, target es android-7) construir con ant en línea de comandos funciona perfectamente. – forksandhope

1

Esto no es realmente una respuesta, pero por lo vale la pena, pude hacer desaparecer el problema eliminando el proyecto de eclipse del área de trabajo, eliminando. * en mi directorio de proyecto y comenzando de nuevo. Eclipse FTW!

13

Opción 1:

Importe el archivo de plantilla de hormigas Android en el archivo build.xml. Asumiendo que tiene sdk.dir definido en local.properties y apuntando a su directorio de instalación de Android, añade lo siguiente bajo el elemento del proyecto:

<import file="${sdk.dir}/platforms/${target}/templates/android_rules.xml" /> 

Opción 2:

de utilizar realmente las tareas ant Android en la perspectiva de la hormiga Eclipse, lo anterior no ayudará. Parece haber cierta incompatibilidad nivel general de que no he descubierto a resolver por completo, sino para que todo funcione a un nivel satisfactorio, aunque se puede:

  • Importe el build.xml proyecto como un constructor. Propiedades del proyecto -> Constructores -> importación.
  • No utilice la opción 1. En cambio, ignore la advertencia sobre la plantilla faltante. Propiedades globales -> Ant -> Editor -> Problemas. Agrega build.xml a los nombres.

Esto tendrá un impacto en todos los proyectos y pasar por alto los errores reales, así que no es una solución perfecta. Pero puede usar las opciones de compilación de Android dentro de Eclipse, así como desde la línea de comando.

+0

¡Este es un paso en la dirección correcta! Seguimiento: ahora las X rojas desaparecen cuando veo build.xml. Pero en la perspectiva Ant aún tiene un error: 'No se puede encontrar $ {sdk.dir}/platforms/$ {target} /templates/android_rules.xml importado desde ...'. Cuando cierro sobre las variables en el editor, aparecen los valores correctos. Pero la perspectiva Ant no parece hacer esa sustitución. ¿Ayuda? – poundifdef

+0

¡Hiciste mi día, Tatu Lahtela! ¡Gracias por la gran respuesta, eso ayudó mucho! :-) – Bryan

+0

¡Esto casi funciona! La perspectiva Ant no muestra los objetivos en mi build.xml para que pueda hacer doble clic en un objetivo individual. ¿Obtienes el mismo comportamiento? – poundifdef

4

Esto no soluciona el problema, pero hará que Eclipse deje de interponerse en su camino. Vaya a Window > Preferences > Ant > Editor, y seleccione la pestaña Problems. Marque la casilla ignore all buildfile problems.

+0

Esto casi funciona! La perspectiva Ant no muestra los objetivos en mi build.xml para que pueda hacer doble clic en un objetivo individual. ¿Obtiene el mismo comportamiento? – poundifdef

+0

Después de marcar el cuadro de ignorar tuvo que abrir/cerrar build.xml para hacer desaparecer el error. – Asahi

6

Hay un objetivo llamado 'ayuda' definido en $ {sdk.dir}/tools/ant/main_rules.xml, como a continuación,

<target name="help"> 

    <echo>Android Ant Build. Available targets:</echo> 
    <echo> help:  Displays this help.</echo> 
    <echo> clean:  Removes output files created by other targets.</echo> 
    <echo> compile: Compiles project's .java files into .class files.</echo> 
    <echo> debug:  Builds the application and signs it with a debug key.</echo> 
    <echo> release: Builds the application. The generated apk file must be</echo> 
    <echo>    signed before it is published.</echo> 
    <echo> install: Installs/reinstalls the debug package onto a running</echo> 
    <echo>    emulator or device.</echo> 
    <echo>    If the application was previously installed, the</echo> 
    <echo>    signatures must match.</echo> 
    <echo> uninstall: Uninstalls the application from a running emulator or</echo> 
    <echo>    device.</echo> 
</target> 

copia éste a su build.xml y debería obras.

+2

Parece que funciona. En realidad, todo lo que necesitas es tamberg

2

que tiene el mismo problema y lo único que hice fue Goto en el eclipse

Window->Preferences->Ant->Editor->Problems 

y haga clic en

Ignore All Build File Problems. 
Cuestiones relacionadas