鉴于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,以便在运行时找到正确的类?
答案 0 :(得分:2)
你确定xyz.class在CLASSPATH中吗?
我遇到了同样的问题而且只是这个!