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