2011-11-18 10 views
6

Tengo varios proyectos en los que trabajo simultáneamente.Ejecutar archivo por lotes después de cada compilación en eclipse

Cada vez que construyo y ejecuto una de ellas, la apk se encuentra como de costumbre en la carpeta bin.

Si quiero copiar este apk a alguna otra carpeta fuera del proyecto, tengo que hacerlo manualmente.

Creé un único archivo por lotes que copia todos los archivos apk de mis proyectos en la ubicación deseada.


¿Hay una manera de cambiar la ubicación de salida de la carpeta bin a algún lugar fuera del proyecto o más preferiblemente ejecutar el archivo por lotes después de cada construir?


AVISO

Estoy usando Eclipse con ADT. Intenté agregar un constructor que ejecuta el archivo por lotes. Sin embargo, cuando se ejecuta el archivo por lotes, el archivo apk aún no se ha generado. Intenté todas las combinaciones de opciones en el generador y todas las posibles secuencias de constructores.

+0

¿Estás usando un 'Makefile'? Si es así, ¿cómo se ve? Sería fácil ajustar la mayoría de 'Makefile's para esta tarea, de todos modos ... – sarnold

+0

Uso el plugin android para eclipse? Es realmente embarazoso pero no sé sobre esto. –

Respuesta

5

Si está contento de usar Eclipse mientras perfecciona la compilación, cambie a la línea de comandos para la compilación final, entonces con Ant es muy fácil obtener lo que quiere con muy poco esfuerzo o configuración.

Supuestos

1) Sus fuentes se encuentran en un espacio de trabajo Android y el resultado final será con dos juegos de binarios - uno hecho por Eclipse, la otra hecha por Ant terminarán fuera del área de trabajo como establecido por un archivo de propiedades

2) está usando el SDK14 o 15 (Ant cambiado en 14)

3) usted tiene una t instalado y en su camino - necesitará Ant 0.2.2 - este no es el interno que usa Eclipse, puede tener que obtenerlo del sitio Apache, es fácil de instalar

Pasos

1) Hacer un proyecto de ejemplo desde la línea de comandos como se describe en http://developer.android.com/guide/developing/projects/projects-cmdline.html

Por ejemplo he utilizado: androide crean proyecto --target 8 --name Sample15App --path c: \ dev \ projects \ samples \ Sample15 --activity Sample15Activity --package com.me.samplefifteen

Esto hará que un directorio y algunos archivos que se va a utilizar más tarde como una plantilla en sus proyectos

2) Hacer un proyecto de ejemplo en el espacio de trabajo de Eclipse, hice EclipseSample en uno de mis espacios de trabajo

3) copiar los siguientes archivos de Sample15App a la raíz de su proyecto EclipseSample:

build.xml ant.properties l ocal.properties

4) Editar ant.properties (que es inicialmente vacío) sean como este ejemplo:

projectname=EclipseSample 
workspace.dir=/dev/projects/EclipseIndigo/AndroidWorkTwo 
base.dir=${workspace.dir}/${projectname} 
outbasebase.dir=/dev/projects/AntBuilds 
outbase.dir=${outbasebase.dir}/${projectname} 
ant.project.name=${projectname} 
out.dir=${outbase.dir}/bin 
layout.dir=${base.dir}/res/layout 
source.dir=${base.dir}/src 

De esto se puede ver que mi espacio de trabajo es /dev/proyectos/EclipseIndigo/AndroidWorkTwo

El proyecto Eclipse bajo este directorio está en EclipseSample

Quiero que mis archivos APK de terminar en /dev/proyectos/AntBuilds/EclipseSample (es decir outbasebase concatenado con -SO projectname para otros proyectos se puede utilizar un archivo de ant.properties muy similares simplemente cambiar projectname)

5) IMPORTANTE - Editar las build.xml

comentar o borrar la línea:

<project name="Sample15App" default="help"> 

reemplazarlo con sólo

<project> 

Esto sólo significa que captará el nombre del proyecto de ant.properties en lugar de la build.xml y se puede utilizar el mismo build.xml en todos sus proyectos, sólo se necesita cambiar ant.properties

6) intentarlo con "depuración hormiga" deben construir los archivos APK de depuración en/dev/proyectos/AntBuilds/EclipseSample

7) finalmente, si desea automatizar la versión de lanzamiento (firma y la contraseña que entra automáticamente) añadir líneas como

key.store.password=YourPassword 
key.alias.password=YourPassword 
key.store=c:/users/you/yourrelease-key.keystore 
key.alias=release_alias 

a los ant.properties y luego sólo tiene que teclear "liberación hormiga"

Si no añadirlos que le dirá a firmar de forma manual y, como no hay entradas de contraseñas se encuentran en 'build.properties '(- eso era lo que ant.properties solía llamarse pre SDK 14, deberían haber corregido esto!)

+0

gracias por su tiempo +1 lo intentaré lo antes posible –

4

Puede agregar nuevos constructores a su proyecto usando Project Properties->Builders->New....

Una forma de hacer esto es crear una compilación ant (que copia el archivo), o simplemente una secuencia de comandos simple o un archivo por lotes.

+0

¿Cómo puedo hacer que el archivo por lotes se ejecute DESPUÉS de que se complete la compilación?precisamente después de crear el archivo apk en la carpeta 'bin' –

+0

Puede mover los constructores hacia arriba y hacia abajo usando los botones Arriba y Abajo en la página Constructores. Si desea que suceda después de la compilación, muévala hacia abajo después de todos los demás constructores. –

+0

Por favor, desnudo conmigo. Agregué un nuevo constructor. Establezca 'Location' en la ubicación del archivo por lotes. Ahora, en 'Opciones de compilación', hay una opción llamada" Ejecutar el generador: "donde debería elegir una de las casillas de verificación al menos: (Después de una limpieza) - (Durante compilaciones manuales) - (Durante compilaciones automáticas) - (Durante un limpio). Ninguno de ellos funciona para mí y el archivo por lotes está dando un error de que el archivo no se encuentra, por lo que está intentando copiar antes de la creación del archivo. Una cosa más, parece que el archivo se ejecuta solo cuando se marca "Después de limpiar". –

Cuestiones relacionadas