2012-03-26 66 views
12

我只是想在Android JUnit测试, 使用Robotium但测试总是失败与错误:的Android Robotium的NoClassDefFoundError

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,但我无法证实这一点,因为我第一次尝试Robotium已经与SDK 17

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

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

问候 K.

回答

30

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

TestProject Properties - > Java Build Path - > Libreries - > Add JAR ... - > TestProject/libs /robot-solo-3.1.jar

+2

libs目录做的窍门,谢谢!但你不应该将它们添加到那么BUIL路径,因为在库的一切将被自动添加到构建路径。 (http://tools.android.com/recent/dealingwithdependenciesinandroidprojects)。 – Alf 2012-03-30 13:02:40

+0

金嗨,我没有看到我的测试项目中的任何LIB ...我在哪里需要改变呢? – ChanGan 2012-09-28 12:10:33

25

您将需要导出Robotium jar,方法是转到Properties-> Java Build Path - > Order and Export。然后检查Robotium jar文件。

+0

这是我的问题,谢谢! – Blaskovicz 2012-05-19 19:43:06

+0

这在这种情况下帮助了我!谢谢! – joebalt 2013-09-23 18:57:42

3

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

+0

当试图测试Jelly Bean应用程序时,我也遇到了所有这三个问题。确保你不使用不赞成使用的构造函数。 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2012-07-03 04:00:32

2

我做了什么来解决这个bug是:

  • 右键点击项目名称>属性> Java构建路径>标签库>删除一切:

    • 从标准的Java构建路径中删除库除了“Android XX”(本例中为2.3.3)和“Android Dependencies”
    • 将库文件夹从“lib”重命名为“libs”
    • 通过这样做,文件夹“libs “是由Android插件找到的,并被添加到” Android的依赖关系”项目的项目
    • 清理项目(不完全必要)

    的你是好去!

  • 7

    我这样做配置,以解决问题

    enter image description here

    注:我把robotium第一个。

    2

    如果问题仍然存在,请重新启动您的eclipse。 即使在输入robotium.jar之后,我仍然遇到同样的问题,但在重新启动eclipse后,它工作正常。