Как создать тестовое приложение для Android с зависимостью от другого приложения с помощью ant? - PullRequest
6 голосов
/ 18 марта 2010

У меня есть модуль с именем MyApp и другой модуль с именем MyAppTests, который зависит от MyApp. Оба модуля создают APK, один с именем MyApp.apk, а другой - MyAppTests.apk.

Обычно я создаю их в IntelliJ или Eclipse, но я хотел бы создать для них сборочный файл ant для непрерывной интеграции.

Я использовал «обновление Android» для создания файла сборки для MyApp, и благодаря ответу commonsware на мой предыдущий вопрос я смог успешно построить его с помощью ant.

Теперь я хотел бы построить MyAppTests.apk, используя ant. Я создал файл сборки, как и раньше, используя «обновление Android», но при запуске я получаю сообщение об ошибке, указывающее, что он не находит ни одного из классов в MyApp.

Исходя из моего предыдущего вопроса, я попытался поместить MyApp.apk в мои MyAppTests / libs, но, к сожалению, это не решило проблему чудесным образом.

Какой лучший способ создать тестовое приложение APK с использованием ant, если это зависит от классов в другом 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]                ^

Ответы [ 2 ]

4 голосов
/ 18 марта 2010

В /Users/mike/Projects/myapp/android/, предполагая, что основной источник приложения находится в подкаталоге с именем MyApp, запустите:
android create test-project -p MyAppTests -m ../MyApp -n MyAppTests

Это сгенерирует структуру тестовой папки и соответствующие файлы сборки Ant, поэтому вы можете сделать:
cd MyAppTests
ant run-tests

1 голос
/ 09 июня 2014

Я столкнулся с этой проблемой.

Для меня решение было добавить следующее в мои ant.properties.

tested.project.dir=../MyApp

Ответ Кристофера также создаст для вас файл ant.properties. Его решение будет лучше, если у вас еще нет полностью функционирующего проекта в Eclipse.

Для меня мой проект уже строился и работал в Eclipse, но не собирался в ant. Для этого мне понадобилось только то, что указано в моих ant.properties. Eclipse и другие IDE не генерируют правильные ant.properties для вас, поэтому ответ Кристофера будет работать, поскольку он генерирует ant.properties

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...