Android Robotium测试 - NoClassDefFoundError

时间:2013-09-09 22:18:43

标签: android intellij-idea robotium

我遇到Robotium无法在运行时找到我的应用程序的问题。

为了清楚起见,我在SO上看到了一些类似的问题,但它们似乎围绕着在运行时(或其他第三方lib)找不到的Robotium Solo 类。但是,由于我的Robotium测试找不到正在测试的项目,因此略有不同。

测试是在一个单独的项目中,它依赖于我的应用程序项目。在编译时没有问题,但是当我尝试运行测试时,我得到了......

java.lang.RuntimeException: Exception during suite construction
at android.test.suitebuilder.TestSuiteBuilder$FailedToCreateTests 
....
Caused by: java.lang.NoClassDefFoundError: com.myapp.mobile.activity.RegisterUserScreen

RegisterUserScreen是我的应用中的活动。这发生在设备和模拟器上。

我在IntelliJ 12.1.4中针对Android 4.1.2构建/运行,当我尝试从命令行运行测试时,我看到相同的结果。

可能值得指出的是,从命令行运行 adb shell pm list instrumentation 会返回正确的检测...

instrumentation:com.myapp.mobile.test.system/android.test.InstrumentationTestRunn
er (target=com.myapp.mobile)

提前致谢,

尼尔。

2 个答案:

答案 0 :(得分:2)

在您的设备中,转到settings-> apps并检查您的测试应用程序名称的已安装或正在运行的应用程序列表名称是否存在。如果你在那里找到它,那么卸载测试应用程序以及原始应用程序(必须进行测试)。很多时候,由于不同的版本/签名不匹配,测试应用程序无法找到目标应用程序。

答案 1 :(得分:0)

将您的运行配置创建为“Android测试”,而不是“JUnit”