2010-12-15 22 views
39

Tengo un proyecto de Android en Eclipse Me gustaría convertir para construir con Ant en su lugar.¿Cómo convertir un proyecto de Android Eclipse para usar Ant para compilación?

¿Cómo puedo lograrlo? He intentado exportar un archivo de compilación Ant, pero estoy bastante seguro de que no va a funcionar (ni tampoco cuando ejecuto el archivo exportado). Tampoco sé mucho sobre Ant, así que alguna explicación también podría ayudar.

EDITAR: ahora parece que he logrado crear el archivo de construcción necesario, pero tengo que agregar las bibliotecas de proyectos como admob.jar para ser visto por ant y utilizado para compilar. como estoy consiguiendo el error siguiente

 -dex: 
    [echo] Converting compiled files and external libraries into C:\Users\Jason 
\Documents\Programming\Android\Android SVN\trunk\GPSAlarm\BusSnooze\bin\classes. 
dex... 
    [apply] 
    [apply] UNEXPECTED TOP-LEVEL EXCEPTION: 
    [apply] com.android.dx.util.ExceptionWithContext 
    [apply]  at com.android.dx.util.ExceptionWithContext.withContext(Exceptio 
nWithContext.java:46) 
    [apply]  at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslato 
r.java:340) 
    [apply]  at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.ja 
va:131) 
    [apply]  at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.jav 
a:85) 
    [apply]  at com.android.dx.command.dexer.Main.processClass(Main.java:297) 

    [apply]  at com.android.dx.command.dexer.Main.processFileBytes(Main.java: 
276) 
    [apply]  at com.android.dx.command.dexer.Main.access$100(Main.java:56) 
    [apply]  at com.android.dx.command.dexer.Main$1.processFileBytes(Main.jav 
a:228) 
    [apply]  at com.android.dx.cf.direct.ClassPathOpener.processArchive(Class 
PathOpener.java:245) 
    [apply]  at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPath 
Opener.java:130) 
    [apply]  at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpe 
ner.java:108) 
    [apply]  at com.android.dx.command.dexer.Main.processOne(Main.java:245) 
    [apply]  at com.android.dx.command.dexer.Main.processAllFiles(Main.java:1 
83) 
    [apply]  at com.android.dx.command.dexer.Main.run(Main.java:139) 
    [apply]  at com.android.dx.command.dexer.Main.main(Main.java:120) 
    [apply]  at com.android.dx.command.Main.main(Main.java:87) 
    [apply] Caused by: java.lang.NullPointerException 
    [apply]  at com.android.dx.cf.code.ConcreteMethod.<init>(ConcreteMethod.j 
ava:84) 
    [apply]  at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslato 
r.java:243) 
    [apply]  ... 14 more 
    [apply] ...while processing <init>()V 
    [apply] ...while processing com/google/android/apps/analytics/AnalyticsRecei 
ver.class 
    [apply] 
    [apply] 1 error; aborting 
+0

¿Puedes publicar más del error? Solo el final se muestra aquí. –

+0

@Christopher: actualizado – Jason

Respuesta

55

Al ejecutar android update project -p . en la línea de comandos, en la carpeta base de su proyecto se crearán los archivos necesarios build.xml y de apoyo para una compilación Ant.

+3

hmm parecía llegar a algún lado, pero hay muchos errores de compilación sobre clases que no implementan métodos y esas cosas. mientras que el código compila y funciona perfectamente desde eclipse – Jason

+1

Mismo problema que Jason, esto funciona en la mayoría de los casos pero no con todos mis proyectos – schwiz

+0

Ha generado propiedades locales y este mensaje "build.xml: Found version-tag: custom. File no será actualizado ". ¿Cuándo se generarán ant.properties? Quiero cambiar ese archivo –

1

Si bien puede haber ninguna característica "Configuración Ejecutar a Ant" todavía se puede abrir la configuración de ejecución y ver la configuración.

El sitio de Desarrolladores de Android tiene una sección en using "Other IDEs"; aquí cubren un poco el uso de Ant para compilar si ya estás familiarizado con Ant.

+0

Sí, pero el archivo build.xml del que siguen hablando no existe – Jason

+0

Genera el archivo build.xml en el paso "Crear un proyecto de Android": http://developer.android.com/guide/ developing/other-ide.html # CreatingAProject. Hace más de lo que necesita si ya tiene un proyecto, pero podría hacerlo y luego simplemente tomar el archivo build.xml que le da y usarlo como su punto de partida. –

+0

@Mayra para poder usar el comando android create project en un proyecto ya existente? – Jason

8

Puede crear archivo de generación Ant directamente de eclipsar a si mismo .. En el menú Archivo

Éstos son los pasos para crear build.xml para cualquier proyecto en Eclipse

Archivo -> Exportar -> General - > Ant Buildfiles y elige el proyecto requerido para crear un archivo de compilación.

Cuestiones relacionadas