2010-03-17 21 views
6

Tengo un módulo llamado MyApp, y otro módulo llamado MyAppTests que tiene una dependencia en MyApp. Ambos módulos producen APK, uno llamado MyApp.apk y el otro MyAppTests.apk.¿Cómo construir una aplicación de prueba de Android con una dependencia de otra aplicación usando hormiga?

Normalmente los construyo en IntelliJ o Eclipse, pero me gustaría crear un archivo de compilación para ellos con el propósito de una integración continua.

Utilicé "actualización de android" para crear un archivo de construcción para MyApp, y gracias a commonsware's answer a mi pregunta anterior, pude construirlo exitosamente usando hormiga.

Me gustaría construir MyAppTests.apk usando hormiga. Construí el archivo de compilación como antes usando "actualización de Android", pero cuando lo ejecuto obtengo un error que indica que no encuentra ninguna de las clases en MyApp.

Tomando una pregunta de mi pregunta anterior, traté de poner MyApp.apk en MyAppTests/libs, pero desafortunadamente eso no resolvió milagrosamente el problema.

¿Cuál es la mejor forma de crear una aplicación de prueba APK usando hormiga cuando depende de clases en otra APK?

$ ant debug 
Buildfile: build.xml 
    [setup] Project Target: Google APIs 
    [setup] Vendor: Google Inc. 
    [setup] Platform Version: 1.5 
    [setup] API level: 3 
    [setup] WARNING: No minSdkVersion value set. Application will install on all Android versions. 

dirs: 
    [echo] Creating output directories if needed... 

resource-src: 
    [echo] Generating R.java/Manifest.java from the resources... 

aidl: 
    [echo] Compiling aidl files into Java classes... 

compile: 
    [javac] Compiling 5 source files to /Users/mike/Projects/myapp/android/MyAppTests/bin/classes 
    [javac] /Users/mike/Projects/myapp/android/MyAppTests/src/com/myapp/test/GsonTest.java:3: cannot find symbol 
    [javac] symbol : class MyApplication 
    [javac] location: package com.myapp 
    [javac] import com.myapp.MyApplication; 
    [javac]    ^

Respuesta

4

En /Users/mike/Projects/myapp/android/, suponiendo que la fuente de la aplicación principal está en un subdirectorio llamado MyApp, ejecute:
android create test-project -p MyAppTests -m ../MyApp -n MyAppTests

que va a generar una estructura de carpetas de prueba y Ant apropiado construir archivos, por lo que puede hacer :
cd MyAppTests
ant run-tests

+0

Gracias Christopher! Eso creó los archivos de compilación necesarios y parece que es la solución correcta, pero aún no está funcionando del todo. Aquí está el problema actual: http://stackoverflow.com/questions/2472059/class-ref-in-pre-verified-class-resolved-to-unexpected-implementation-when-runn – emmby

1

me encontré con este problema exacto.

Para mí, la solución fue agregar lo siguiente a mis ant.properties.

tested.project.dir=../MyApp 

La respuesta de Christopher también generará un archivo ant.properties para usted. Su solución es mejor si aún no tiene un proyecto completamente funcional en Eclipse.

Para mí, mi proyecto ya estaba construyendo y trabajando en Eclipse, pero no construiría en hormiga. Para lograr esto, solo necesitaba lo anterior en mis ant.properties. Eclipse y otros IDE no generan las propiedades de hormiga adecuadas para ti, por lo tanto, la respuesta de Christopher funcionará porque genera ant.properties.

Cuestiones relacionadas