Java eclipse中的Junit在使用Junit时会产生NoClassDefFoundError

Java eclipse中的Junit在使用Junit时会产生NoClassDefFoundError,java,android,unit-testing,junit,Java,Android,Unit Testing,Junit,一般来说,我对jUnit和单元测试是新手,一直在尝试设置我的测试环境,但一整天都失败了。这是试图在我的android应用程序中测试一种方法 我在java类所在的包中添加了一个测试类。我添加了一个方法,如下所示: @Test public void testIsExpectedNote() { assertTrue(Frequency.isExpectedNote(440, "A")); }//should return true 此操作失败,堆栈跟踪如下: java.lang.NoC

一般来说,我对jUnit和单元测试是新手,一直在尝试设置我的测试环境,但一整天都失败了。这是试图在我的android应用程序中测试一种方法

我在java类所在的包中添加了一个测试类。我添加了一个方法,如下所示:

@Test
public void testIsExpectedNote() {
  assertTrue(Frequency.isExpectedNote(440, "A"));   
}//should return true
此操作失败,堆栈跟踪如下:

java.lang.NoClassDefFoundError: android/util/Log
    at dataLogicLayer.Frequency.isExpectedNote(Frequency.java:13)
    at dataLogicLayer.FrequencyTest.testIsExpectedNote(FrequencyTest.java:11)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
...
Caused by: java.lang.ClassNotFoundException: android.util.Log
    at java.net.URLClassLoader$1.run(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)
    ... 25 more
你知道怎么回事吗?我一直在玩我的跑步配置,在类路径中我有:

jre system library [jre7]
junit 4

你的类路径中有android sdk吗?在类路径中搜索包含类android.util.Log的jar

问候


Grub

答案是创建一个新项目并在其中进行测试,必须将其设置为android junit测试,并确保运行配置正确。多亏了Grub的帮助

看来你是在混合Android SDK和Java SDK。你不应该那样做。Android是一个自给自足的库。

谢谢,它不在那里,我把它删除了。但是我找不到它,有什么想法吗?只需将android sdk再次放在你的类路径中:)下载它并再次放在你的项目中。rry我的类路径中有android 2.2,只是不在这个测试类的运行配置中。我可以选择将JAR和项目添加到引导条目中,这就是我需要它的地方吗?我通过恢复默认值,然后重新添加junit和jre系统库,重新添加了android 2.2,现在我得到以下错误:#Java运行时环境检测到致命错误:#内部错误(classFileParser.cpp:3470),pid=4588,tid=2424#错误:ShouldNotReachHere()##JRE版本:7.0-b147#Java虚拟机:Java热点(TM)64位服务器虚拟机(21.0-b17混合模式windows-amd64压缩oops)#无法写入内核转储。默认情况下,在客户端版本的Windows上不启用迷你转储。包含详细信息的错误报告文件保存为:#C:\Users\Ben\workspace…#如果您想提交错误报告,请访问:#