【问题标题】:Junit in eclipse produces NoClassDefFoundError when using juniteclipse中的Junit在使用junit时产生NoClassDefFoundError
【发布时间】:2012-02-27 17:46:39
【问题描述】:

总的来说,我是 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

【问题讨论】:

    标签: java android unit-testing junit


    【解决方案1】:

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

    问候

    【讨论】:

    • 谢谢,它不存在,我删除了它。我找不到它,有什么想法吗?
    • 只需将 android sdk 再次放入您的类路径 :) 下载并再次放入您的项目中
    • 对不起,我的类路径中确实有 android 2.2,只是不在此测试类的运行配置中。我可以选择将 jars 和项目添加到引导条目中,这是我需要的地方吗?
    • 我通过恢复默认值然后重新添加 junit 和 jre 系统库重新添加了 android 2.2,我现在收到以下错误:
    • # # Java Runtime Environment 检测到致命错误:# # 内部错误 (classFileParser.cpp:3470), pid=4588, tid=2424 # Error: ShouldNotReachHere() # # JRE version: 7.0-b147 # Java VM: Java HotSpot(TM) 64-Bit Server VM (21.0-b17 mixed mode windows-amd64 compressed oops) # 无法写入核心转储。 Windows 的客户端版本默认不启用 Minidumps # # 包含更多信息的错误报告文件保存为:# C:\Users\Ben\workspace... # 如果您想提交错误报告,请访问: #bugreport.sun.com/bugreport/crash.jsp
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      似乎您正在混合使用 Android SDK 和 Java SDK。你不应该那样做。 Android 是一个自给自足的库。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-01-20
        • 2015-01-28
        • 1970-01-01
        • 1970-01-01
        • 2011-02-17
        • 2018-03-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多