开发者

How to build an android test app with a dependency on another app using ant?

开发者 https://www.devze.com 2022-12-23 12:56 出处:网络
I have a module called MyApp, and another module called MyAppTests which has a dependency on MyApp.Both modules produce APKs, one named MyApp.apk and the other MyAppTests.apk.

I have a module called MyApp, and another module called MyAppTests which has a dependency on MyApp. Both modules produce APKs, one named MyApp.apk and the other MyAppTests.apk.

I normally build these in IntelliJ or Eclipse, but I'd like to create an ant buildfile for them for the purpose of continuous integration.

I used "android update" to create a buildfile for MyApp, and thanks to commonsware's answer to my previous question I've been able to build it successfully using ant.

I'd now like to build MyAppTests.apk using ant. I constructed the buildfile as before using "android update", but when I run it I get an error indicating that it's not finding any of the classes in MyApp.

Taking a que from my previous question, I tried putting MyApp.apk into my MyAppTests/libs, but unfortunately that didn't miraculously solve the problem.

What's the best way to build a test app APK using ant when it depends on classes in another 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/Gso开发者_如何学编程nTest.java:3: cannot find symbol
    [javac] symbol  : class MyApplication
    [javac] location: package com.myapp
    [javac] import com.myapp.MyApplication;
    [javac]                ^


In /Users/mike/Projects/myapp/android/, assuming that the main app source is in a subdirectory called MyApp, run:
android create test-project -p MyAppTests -m ../MyApp -n MyAppTests

That will generate a test folder structure and appropriate Ant build files, so you can then do:
cd MyAppTests
ant run-tests


I ran into this exact issue.

For me the solution was to add the following to my ant.properties.

tested.project.dir=../MyApp

Christopher's answer will also generate an ant.properties file for you. His solution is better if you do not already have a fully functioning project in Eclipse.

For me, my project was already building and working in Eclipse, but would not build in ant. To accomplish this, I only needed the above in my ant.properties. Eclipse and other IDE's do not generate the proper ant.properties for you, hence Christopher's answer will work because it generates ant.properties.

0

精彩评论

暂无评论...
验证码 换一张
取 消