2013-05-28 69 views
3

這是推動我絕對是瘋了。 Stack Overflow中存在101種類型的問題,但似乎沒有任何效果。java.lang.NoClassDefFoundError在使用第三方庫的Android應用程序(百鳥SDK)

這裏的故事:

  1. 我下載了百鳥SDK(如果這是相關的)和進口他們的圖書館項目到我的工作區
  2. 我加入他們的項目下的圖書館 - > Android的 - >添加..和它在那裏被檢查
  3. 包含顯然在運行時缺少的類的JAR(aviary-sdk.jar)在項目 - > Java構建路徑下的Android Dependencies下監聽(Java編程路徑
  4. 該項目建立正確,但在運行時間它拋出時,試圖推出這個活動

我已經嘗試了一堆東西(選中和取消選中的東西,以便與出口,重新排序的東西在那裏,等),但沒有什麼是採取java.lang.NoClassDefFoundError 。我也只是手動嘗試,包括在/ libs文件夾的JAR,但是這個SDK依賴於該庫項目一幫其他的事情(例如主題)和其引用了兩次的SDK也不起作用。

我在這裏完全難住了。我看過所有其他的答案,似乎沒有任何工作。我開始感覺到這種引用其他庫的方法不再被支持......?

編輯:我創建了一個新的Android項目,並在那裏再現了問題。我懷疑它是在我的編譯環境愚蠢的東西: aviary test app aviary test app project properties aviary test app build path

+0

是否百鳥SDK有它自己的任何依賴關係?你是否包含android支持庫? –

+0

是的,我也包含了Android支持-v4 JAR。缺少的類是我可以*看到*當我擴展項目的Android依賴項中的aviary-sdk.jar時,這是它令人沮喪的原因之一......! – NevilleS

回答

-1

想通了。

在嘗試了設置中的所有內容之後,我決定這是IDE故障。我刪除了自己的ADT並創建了一個新的工作空間,導入了我的所有項目(按原樣),然後從那裏啓動。一切正常。

我想這是我總是抱怨Vim比任何IDE都好的懲罰......雅得到了我,Eclipse。

不滿的嘆息

+0

我有同樣的問題。它在Android studio模擬器上工作正常,但在genymotion上,在我的s5上它給出了相同的classDefFoundError。 :( –

1

您是否嘗試過進口鳥舍,sdk.jar作爲外部罐子?

  1. 複製鳥舍,sdk.jar到libs文件夾上你的項目
  2. 右鍵單擊您的項目,構建路徑 - >添加外部庫
  3. 從您的libs文件夾添加鳥舍,sdk.jar項目

希望這會有所幫助,祝你好運^^

+0

與之相關的問題是,當您引用庫項目時,它會與SDK自動作爲Android依賴項包含在一起。構建過程抱怨在那裏有兩次JAR。 – NevilleS

+0

SDK庫是否在Eclipse上導入爲Project? – reidzeibel

+0

[2013-05-28 12:55:35 - Dex Loader]無法執行dex:多個dex文件定義了Lcom/aviary/android/feather/Constants; [2013-05-28 12:55:36 - Bridgit]轉換爲Dalvik格式失敗:無法執行dex:多個dex文件定義了Lcom/aviary/android/feather/Constants; – NevilleS

1

嘗試一些東西,裏面

數1:關於衝突的罐子,它可能指的支持庫。因此,請繼續並右鍵點擊您的圖書館項目,然後選擇「添加支持圖書館」選項。這會下載最新的支持庫,然後針對您自己的應用程序項目執行相同的操作。

的問題是,該庫可以使用不同的support.jar比你的。

編號2:如果這樣不能解決問題,請轉到您的項目屬性Java Build Path,然後選擇'訂購和導出',並確保'Android Private Libraries'和'Android Dependencies'都是檢查。

清潔項目,並嘗試重新運行。

+0

衝突的JAR來自我手動包含aviary-sdk.jar而不是將其包含爲依賴項。否則,我不會得到那個錯誤。 – NevilleS