java - 从 Eclipse 执行 android 测试用例与控制台远程检测

标签 java android eclipse

假设 Eclipse 中的 Android 项目由 2 个项目构建而成: 项目 1 是一个 Java 库,它在 Android 上编译得很好。 项目 2 是库的测试用例,本质上是扩展 AndroidTestCase 并将结果输出到 Android 控制台的类。 项目1是Java项目,项目2是依赖于项目1的Android项目。

问题描述:如果我从 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,以便在运行时找到正确的类?

最佳答案

你确定 xyz.class 在 CLASSPATH 中吗?

我遇到了同样的问题,就是这个问题!

关于java - 从 Eclipse 执行 android 测试用例与控制台远程检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8037255/

相关文章:

android - 形成此 SQL 语句的正确方法是什么?

java - 将 JApplet 转换为 .exe

java - 同步对象设置为空

Java随机生成全1

java - 如何打开AppCompatActivity类?

java - com/android/dx/command/dexer/Main : Unsupported major. 次要版本 52.0

android - getText 不可访问

java - 从 Java 中的 gradle.build 获取属性

java - Eclipse 不断崩溃

eclipse - Android NDK源代码已编译并成功构建-但是在Eclipse IDE中无法解析函数 'to_string'