从Eclipse与控制台远程检测执行android testcase

时间:2011-11-07 13:42:08

标签: java android eclipse

鉴于Eclipse项目在Eclipse构建中有两个项目: Project 1是一个Java库,在Android上编译得很好。 项目2是库的测试用例,基本上是扩展AndroidTestCase的类并将结果输出到Android控制台。 项目1是Java项目,项目2是Android项目,取决于项目1。

问题描述:如果我从Eclipse执行测试作为Android JUnit测试,他们就会按照自己的意愿运行,没有错误。但是,如果我想通过命令行再次执行它们:

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

我得到了很多

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)
     ....

logcat中的错误。

观察: Eclipse安装.apk。 稍后我执行相同的已安装的.apk,因此可用的类必须相同。 使用Class c = Class.forName("xyz")动态请求类。

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

1 个答案:

答案 0 :(得分:2)

你确定xyz.class在CLASSPATH中吗?

我遇到了同样的问题而且只是这个!