java.lang.NoClassDefFoundError:android/test/AndroidTestCase

java.lang.NoClassDefFoundError:android/test/AndroidTestCase,android,junit,Android,Junit,您好,我在尝试在eclipse中运行单元测试时遇到以下错误: java.lang.NoClassDefFoundError: android/test/AndroidTestCase at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defin

您好,我在尝试在eclipse中运行单元测试时遇到以下错误:

java.lang.NoClassDefFoundError: android/test/AndroidTestCase
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    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.AndroidTestCase
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 18 more
测试班

public class ResponseUtilTest extends AndroidTestCase {

    private BubbleResponseUtil responseUtil;

    private static final String TAG = ResponseUtilTest.class.getSimpleName();

    @Override
    protected void setUp() throws Exception {
        super.setUp();

        responseUtil = new ResponseUtil();
    }

    @Override
    protected void tearDown() throws Exception {
        super.tearDown();
    }

    public void testGetdata() {

    }

    public void testIsOkMessage() {

    }

    public void testIsRetryMessage() {

    }

    public void testIsMatchedCRC() {

    }

}
感谢所有我正在使用的安卓sdk Eclipse版,我从安卓开发网站获得


再次感谢

您需要向设备/模拟器运行
AndroidTestCase
。我猜您只是将其作为常规的
JUnit3
/
JUnit4
测试用例运行?

ninetwozero是正确的。没有可用于运行AndroidTestCase的设备。您需要连接一个真实的设备,或者创建一个具有设备特征的Android虚拟设备(仿真器)


右键单击包含测试的项目,然后运行方式->运行配置。选择Android JUnit测试,点击“新启动配置”按钮。进入“目标”选项卡;使用右下角的“管理器”按钮创建新的仿真器。我相信其他文章也介绍了如何设置仿真器。

这肯定是重复的,但我不确定是哪一篇。关于此错误,在SO-search上有几十个问题。可能重复的问题实际上没有一个被标记为正确回答的问题只是因为答案没有标记为已接受,并不意味着它不正确。“被接受的”和“正确的”答案之间有很大的区别。在SO上搜索此错误-有几十个问题。可能有很多原因,每一个都有相关的答案。我搜索了这个错误,没有一个是正确的,甚至没有一个对我的案例有效。我在寻找正确的解决方案/答案,而不是答案。这些只是对给定问题的回答,没有一个表示它能提供实际的正确答案。还有一个所谓的重复问题是关于使用netbeans IDE。我猜你根本没有读过我的问题是的,我是作为一个普通的JUNIT3/4来运行它的。如何在模拟器上运行它?@jonney启动模拟器,或连接设备。在PackageExplorer中右键单击测试项目并选择“RunAs->AndroidJUnit测试”。它将在设备上安装测试并运行它们(这有点酷!)。