在Netbeans中运行JUnit测试时的java.lang.NoClassDefFoundError

时间:2010-05-26 12:30:23

标签: java android junit

我正在Netbeans中构建一个Android hello world应用程序。它正在构建正确,我也可以在模拟器中运行。

但是在创建和运行Junit测试时,我得到java.lang.NoClassDefFoundError

如何解决此问题?

5 个答案:

答案 0 :(得分:16)

检查测试项目的清单,例如HelloWorldTest/AndroidManifest.xmlandroid:targetPackage标记的instrumentation属性应定位到应用程序中的包,例如com.example.helloworld您的测试项目的测试包(例如com.example.helloworld.test)。

答案 1 :(得分:3)

主应用程序的AndroidManifest.xml -> manifest -> package只需与测试应用程序的AndroidManifest.xml -> manifest -> instrumentation -> android:targetPackage匹配。

答案 2 :(得分:0)

完整错误消息包含类的名称,在类路径上找不到。仔细检查用于运行测试的类路径是否包含所有必需的类和库(您的类文件,junit.jar,特定于android的库)。

答案 3 :(得分:0)

我发现重建通常会找到类(因为它是类路径问题)。 Netbeans似乎积极地编译现有的测试,但主要的源代码(至少来自maven设置)并不总是可用。

我已经开始运行完整版本来尝试解决此问题。可能有一个插件可以解决这个问题,但我还没有找到它。

编辑:This可能有帮助。

答案 4 :(得分:0)

我不知道netbeans的具体细节,但问题可能是相同的。

FragmentActivity can not be tested via ActivityInstrumentationTestCase2

您的测试项目可能使用与主项目不同的Android兼容性库,这会导致这种奇怪的错误。