2010-09-23 69 views
3

我有一個編譯項目,但是在兄弟庫項目中包含的類名引發一個NoClassDefFoundError,但只有從Eclipse構建時纔會引發。當我從ant文件構建項目時,它運行得很好。Android:如何從Eclipse ADT應用程序項目引用庫項目?

如何告知Eclipse構建系統,我的應用程序的.apk需要庫項目中.class文件的副本。

此頁... http://developer.android.com/guide/developing/eclipse-adt.html#libraryReference 使聽起來像添加圖書館應該「只是工作」,沒有其他的步驟。而且我發現它已經更新了我的default.properties文件,並且有必要的鏈接讓我的ant構建工作。

儘管遵循以下這些步驟(我的庫項目在我的應用程序的項目屬性的Android頁面中列出),但Eclipse無法識別編輯器中的新類。所以我做了將庫添加到Java Build Path的標準Eclipse步驟。現在,編譯器和IDE可以識別該類,但即使在Java Build Path,Order和Export中檢查了庫之後,我的應用仍然會與NoClassDefFoundError一起崩潰。

我錯過了什麼步驟?

一些背景... 我首先構建了Eclipse項目。然後,在一個單獨的目錄中,我使用了android create project ...以及所有參數來創建一個完全相同的項目。最後,我將ant build.xml和* .properties文件複製到Eclipse項目目錄中。我對我試圖引用的庫項目做了同樣的事情。

+0

刪除評論 – Anm 2010-09-24 00:31:06

+0

我有時可以通過清理/重新編譯來解決構建錯誤。由於兩個「IllegalArgumentException:已經添加...」錯誤,通常會導致「轉換爲Dalvik格式失敗,並顯示錯誤1」,一個用於僅在src中的類,另一個用於庫路徑中的類。 (這是使用Android庫引用和Eclipse庫引用,因此後者可能是預期的。) – Anm 2010-09-24 00:38:27

+0

您的庫項目是否包含鏈接的文件夾? ADT的庫項目似乎只包含src文件夾,忽略任何鏈接的文件夾。 – 2011-05-12 13:26:34

回答

1

我每隔一段時間都會遇到這個問題,不知道是什麼原因造成的。要解決這個問題,我必須鏈接到我的圖書館項目的來源。在主項目的構建路徑中,鏈接到您試圖包含的庫項目的「src」文件夾。

+0

這似乎只是一個部分解決方案,因爲它不會吸引子庫或我希望的活動聲明。也許我對後者要求太高了。 – Anm 2011-08-02 17:58:17

1

我們遇到了同樣的問題(在IntelliJ和Ant中工作,但不在Eclipse中)。在Eclipse中安裝了Aptana Studio。刪除允許庫項目引用在Eclipse中工作的廣告。

0

1)右鍵單擊您的Android項目。

2)轉到其屬性

3)選擇從左邊

4顯示的菜單選項的Android)查看庫面板,其是在右側,API的列表如下。

5)單擊「添加..」按鈕添加庫項目。

請記住,您試圖添加的作爲當前項目庫的獨立項目應標記爲「IsLibrary」。

0

我有類似的問題。即使在添加庫項目之後,所需的文件也不包括在內。 看來有這個thread討論的錯誤。

我發現,在Eclipse的default.properties文件沒有被讀庫項目的位置,因爲我的工作項目是不同的驅動器庫項目(我是做Windows中的發展)。將我的項目移動到與庫項目相同的驅動器後,它開始工作。 這可能會起到解決問題的作用,直到bug修復。

相關問題