2012-03-26 96 views
12

我只是想在Android JUnit測試, 使用Robotium但測試總是失敗與錯誤:的Android Robotium的NoClassDefFoundError

java.lang.NoClassDefFoundError:com.jayway.android.robotium.solo.Solo

solo = new Solo(getInstrumentation(),getActivity());在SETUP()方法:

protected void setUp() throws Exception { 
    super.setUp(); 
    solo = new Solo(getInstrumentation(), getActivity()); 
} 

我讀的地方,這可能與Android SDK的修訂17,但我無法證實這一點,因爲我第一次嘗試Robotium已經與SDK 17

的Robotium jar已正確添加到項目構建路徑中。

有沒有人遇到過類似的問題?

問候 K.

回答

30

今天我有同樣的問題。我通過將jar導入到測試項目的libs目錄然後將其添加到Build Path Libraries中來解決此問題:

TestProject Properties - > Java Build Path - > Libreries - > Add JAR ... - > TestProject/libs /robot-solo-3.1.jar

+2

libs目錄做的竅門,謝謝!但你不應該將它們添加到那麼BUIL路徑,因爲在庫的一切將被自動添加到構建路徑。 (http://tools.android.com/recent/dealingwithdependenciesinandroidprojects)。 – Alf 2012-03-30 13:02:40

+0

金嗨,我沒有看到我的測試項目中的任何LIB ...我在哪裏需要改變呢? – ChanGan 2012-09-28 12:10:33

25

您將需要導出Robotium jar,方法是轉到Properties-> Java Build Path - > Order and Export。然後檢查Robotium jar文件。

+0

這是我的問題,謝謝! – Blaskovicz 2012-05-19 19:43:06

+0

這在這種情況下幫助了我!謝謝! – joebalt 2013-09-23 18:57:42

3

在SDK 17上有同樣的問題。添加robotium jar到lib和導出幫助。還必須將構造函數中不推薦使用的超級調用從super(String,Class)更改爲super(Class)以使其工作。

+0

當試圖測試Jelly Bean應用程序時,我也遇到了所有這三個問題。確保你不使用不贊成使用的構造函數。 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2012-07-03 04:00:32

2

我做了什麼來解決這個bug是:

  • 右鍵點擊項目名稱>屬性> Java構建路徑>標籤庫>刪除一切:

    • 從標準的Java構建路徑中刪除庫除了「Android XX」(本例中爲2.3.3)和「Android Dependencies」
    • 將庫文件夾從「lib」重命名爲「libs」
    • 通過這樣做,文件夾「libs 「是由Android插件找到的,並被添加到」 Android的依賴關係」項目的項目
    • 清理項目(不完全必要)

    的你是好去!

  • 7

    我這樣做配置,以解決問題

    enter image description here

    注:我把robotium第一個。

    2

    如果問題仍然存在,請重新啓動您的eclipse。 即使在輸入robotium.jar之後,我仍然遇到同樣的問題,但在重新啓動eclipse後,它工作正常。