java.lang.NoClassDefFoundError:android / test / ActivityInstrumentationTestCase2

时间:2011-11-27 17:37:39

标签: android robotium

我创建了测试项目...我在(运行时配置类路径 - >用户条目 - > junit.jar

中更新了junit.jar

当我运行代码时,我正在低于错误......

java.lang.NoClassDefFoundError: android/test/ActivityInstrumentationTestCase2
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:693)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:429)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.ClassNotFoundException: android.test.ActivityInstrumentationTestCase2
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    ... 17 more

5 个答案:

答案 0 :(得分:8)

您需要将其作为 Android JUnit测试运行,而不是 JUnit测试。 转到项目资源管理器中的项目 - >右键单击 - > Android JUnit测试

答案 1 :(得分:0)

android.test.ActivityInstrumentationTestCase2不在您声称添加到类路径的JUnit JAR中。

看起来像你的一个人。

你编译代码了吗?如果没有,请这样做。

您是否已将路径添加到写入.class文件的位置?如果没有,请这样做。

答案 2 :(得分:0)

请按照以下说明操作:http://developer.android.com/guide/developing/testing/testing_eclipse.html

基本上,您不必将junit.jar添加到类路径中。

答案 3 :(得分:0)

我遇到了类似的问题。对我来说改变robotium-solo.jar的“顺序和导出”(属性 - >构建路径 - >顺序和导出),即将其移动到顶部并通过右键单击项目显式选择运行为'android JUnit test'解决了这个问题。另请尝试运行提供的sample project

答案 4 :(得分:-1)

听起来可能很奇怪。但是你需要做的就是在导入类之前导入solo并且它有效。至少它对我有用。我不知道为什么我尝试了,但它所需要的只是削减导入com.jayway.android.robotium.solo.Solo;并在包裹之后粘贴它。