2011-11-07 16 views
6

从2个项目中构建Eclipse中的Android项目: Project 1是一个Java库,在Android上编译得很好。 项目2是库的测试用例,实质上是扩展了AndroidTestCase的类并将结果输出到Android控制台。 项目1是一个Java项目,项目2是一个取决于项目1的Android项目。从Eclipse执行android testcase与控制台远程工具

问题描述:如果我将Eclipse作为Android JUnit测试执行测试,则它们运行正常,没有错误。但是,如果我想通过命令行再次执行它们:

adb shell am instrument -w bla.bla/android.test.InstrumentationTestRunner

我得到了很多的logcat的

Cannot load class. Make sure it is in your apk. Class name: xyz 
java.lang.ClassNotFoundException: xyz 
    at java.lang.Class.classForName(Native Method) 
    at java.lang.Class.forName(Class.java:234) 
    at android.test.ClassPathPackageInfoSource.createPackageInfo 
    .... 

Caused by: java.lang.ClassNotFoundException: xyz in loader 
    dalvik.system.PathClassLoader[/system/framework/android.test.runner.jar:/data/app/bla.apk] 
    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240) 
    .... 

错误。

评论: Eclipse安装.apk。 后来我执行相同的已安装的.apk,所以可用的类必须相同。 类动态请求Class c = Class.forName("xyz")

所以我的问题是,Eclipse如何执行不同的安装.apk,以便在运行时找到正确的类?

+1

我可以推荐一种更好的方式来测试你的Android应用程序吗?我使用这个,它很棒:http://pivotal.github.com/robolectric/。没有模拟器,没有单独的测试项目......我可以做TDD,快速迭代。 –

回答

2

你确定xyz.class在CLASSPATH中吗?

我有同样的问题,只是这个!