我在Netbeans中构建了一个Android Hello世界应用程序。它的构建正确,我也能够在仿真器中运行。在NetBeans中运行JUnit测试时发生java.lang.NoClassDefFoundError
但是,当创建并运行Junit测试时,我得到java.lang.NoClassDefFoundError
。
我该如何解决这个问题?
我在Netbeans中构建了一个Android Hello世界应用程序。它的构建正确,我也能够在仿真器中运行。在NetBeans中运行JUnit测试时发生java.lang.NoClassDefFoundError
但是,当创建并运行Junit测试时,我得到java.lang.NoClassDefFoundError
。
我该如何解决这个问题?
完整的错误消息包含类的名称,在类路径上找不到。仔细检查用于运行测试的类路径是否包含所有必需的类和库(您的类文件,junit.jar,android特定的库)。
检查您的测试项目的清单,例如HelloWorldTest/AndroidManifest.xml
。 instrumentation
标记的android:targetPackage
属性应该以应用程序中的包为目标,例如com.example.helloworld
。 不是您测试项目的测试包(如com.example.helloworld.test
)。
* facepalm *你刚刚救了我1小时的搜索。这是一个常见的错误,但我往往忽视它不时:) – marsbear 2012-08-17 12:39:54
呃呃我失去了一个小时自己的错误。 :) – 2012-08-17 15:31:55
我不知道netbeans的细节,但问题可能是相同的。
FragmentActivity can not be tested via ActivityInstrumentationTestCase2
你的测试项目,可以使用比主项目不同的Android兼容库,并导致这个奇怪的错误。
主要应用简单AndroidManifest.xml -> manifest -> package
应该匹配AndroidManifest.xml -> manifest -> instrumentation -> android:targetPackage
的测试应用。
但是,如果他运行简单地没有仪器测试,但普通的旧jUnit? – JacksOnF1re 2015-04-02 16:28:42
编辑您的问题以包含整个错误消息和堆栈跟踪。 – BalusC 2010-05-26 12:37:33