使用junit时,Eclipse中的Junit会产生NoClassDefFoundError

时间:2012-02-27 17:46:40

标签: java android unit-testing junit

我是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

3 个答案:

答案 0 :(得分:1)

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

问候

答案 1 :(得分:1)

答案是制作一个新项目并在那里进行测试,必须使其成为一个android junit测试,并确保运行配置是正确的。感谢Grub的帮助

答案 2 :(得分:1)

好像你在混合Android SDK和Java SDK。你不应该这样做。 Android是一个自给自足的库。