Android Robotium NoClassDefFoundError

时间:2012-03-26 15:30:33

标签: android testing junit robotium

我只是想在Android JUnit测试中使用Robotium, 但测试始终失败并出现错误:

java.lang.NoClassDefFoundError:com.jayway.android.robotium.solo.Solo

抛出solo = new Solo(getInstrumentation(),getActivity());在setUp()方法中:

protected void setUp() throws Exception {
    super.setUp();
    solo = new Solo(getInstrumentation(), getActivity());
}

我在某处读到这可能与Android SDK修订版17有关,但我无法证实这一点,因为我第一次尝试使用SDK 17的Robotium。

Robotium jar正确添加到项目构建路径中。

有没有人遇到过类似的问题?

此致 ķ。

6 个答案:

答案 0 :(得分:30)

我今天遇到了同样的问题。我通过将jar导入测试项目的libs目录然后将其添加到Build Path Libraries来解决:

TestProject属性 - > Java构建路径 - > Libreries - >添加JAR ... - > TestProject /库/ robotium-独奏-3.1.jar

答案 1 :(得分:25)

您需要转到属性 - >导出Robotium jar。 Java构建路径 - >订单和出口。然后检查Robotium jar文件。

答案 2 :(得分:8)

我做了这个配置来解决问题

enter image description here

注意:我把机器人放在第一位。

答案 3 :(得分:3)

在SDK 17上存在同样的问题。将robotium jar添加到lib并导出帮助。还必须将构造函数中已弃用的超级调用从super(String,Class)更改为super(Class)以使其工作。

答案 4 :(得分:2)

我为修复错误所做的是:

  • 从标准Ja​​va构建路径中删除库:
  • 右键单击项目名称>属性> Java构建路径>选项卡库>删除除“Android X.X”(在我的情况下为2.3.3)和“Android Dependencies”
  • 之外的所有内容
  • 将库文件夹从“lib”重命名为“libs”
  • 通过这样做,Android插件找到文件夹“libs”中的所有库,并将其添加到项目的“Android Dependencies”项目中
  • 清理项目(不完全需要)

你很高兴!

答案 5 :(得分:2)

如果问题仍然存在,请重启你的日食。 即使在导入robotium.jar之后我也遇到了同样的问题但是在重新启动eclipse之后它运行正常。