2013-04-18 70 views
4

我想在我的Android項目中引用純Java項目 - > Java-Project有一大堆我需要使用的類。哦,並作爲第一反應指出:我使用的是日食,是的:)
唯一的問題是:我總是得不到類'XXX',從方法com.example.helloworld.MainActivity.onCreate引用。我似乎錯過了一些步驟或錯誤...?
我已經做了:
在Android項目中引用(純java)項目(找不到類)

  • 該項目添加項目到
  • 它被標記爲「排序和導出」,在Java構建路徑,並推到Java構建路徑(邏輯nessecary)頂部(這解決了處理Jar文件時其他人遇到的問題)
  • Ir在項目設置的「項目引用」中標記。
  • 我在構建路徑中添加了相關類位於「庫」下的文件夾......我不確定這是否應該是詭計。

Java-Project I引用有一整個Jars負載,但如果這是原因,我應該不會得到不同的錯誤消息嗎?

+0

您是否發現並解決了實際問題?具有完全相同的問題,引用純java項目並獲取有關被引用項目中的類和方法的錯誤。 – Lennert

+0

我知道它已經過時了,但我只是再次發現它......這確實是Java版本的一個問題,在我的設置過程中,我一定會搞砸一些。 – Layna

回答

2

我有同樣的問題和挫折和搜索的幾個小時後,我終於在這裏找到了答案: Android, class not found from imported jar file

基本上,問題是,所引用的純Java項目或生成的JAR使用Java 1.7構建,並且Android項目設置爲使用1.6。

0

兩件事情來檢查(你提到你使用的是Eclipse):

  1. 如果你的Android項目需要使用純Java項目的JAR文件,檢查那些JAR文件在構建路徑選項被出口的純Java項目。這是你正在嘗試包含的純java項目的構建路徑,而不是試圖包含它的android項目的構建路徑。在pure-java項目的「訂單和導出」選項卡下,注意註釋「導出的條目對相關項目有貢獻」。在這種情況下,你的android項目是依賴項目,你的純java項目需要做貢獻。

  2. 確保pure-java項目除了android項目之外實際上在IDE中打開。可能微不足道,但有時會被忽視。

如果答案是不夠的,你不妨提一下,如果缺少類是.java源文件,或者如果他們在JAR文件僅發現了純Java項目的構建路徑

編輯:爲了進一步追查問題,請確認以下,以確保我明白你的問題:

  1. 純Java項目沒有成功建立在IDE

  2. 「未找到類」錯誤是您在嘗試和 - 構建Android項目時得到的錯誤,而不是在嘗試和運行時得到的錯誤。

  3. CLASSPATH(aka構建路徑)可能是討厭的解開。如果包含該項目不工作(假設它構建),則可以嘗試構建一個純Java項目的JAR,並將該項目和其他所有JAR複製(幷包括)到您的Android項目中。

  4. android SDK確實使構建環境複雜化。一種方法來找出問題是(A)你的Android項目設置)或(B)純Java項目的打包方式)是創建一個不同的純Java項目,並嘗試包括第一個,最好使用 - 完全相同的代碼行,如果可能的話,會給你android項目中的構建錯誤。

+0

我其實完全錯過了2號......還沒有工作,但這可能是那裏的蹤跡。未找到的類是一個源文件,但是在某一行的某處依賴於Jar。另外,我發現了對javax-package的依賴......恐怕我的問題可能存在嗎? – Layna

+0

好吧,我再次在這個問題上,仍然沒有成功。我現在有一個測試項目,純java,只有一個小類。在不使用外部類的情況下,Android項目(實際上只是一個Hello World)完美運行。當我添加External類時,該建築仍然成功,但是當我試圖在我的設備上運行它時,整個事件都崩潰了(Nexus 7,以防萬一)。儘管如此,還是要感謝所有的指針......當我可以的時候,它會得到滿意的結果;) – Layna

+0

「當Java虛擬機無法在運行時找到一個在編譯期間可用的特定類時,Java中出現NoClassDefFoundError。」我多次遇到這個問題,看起來有不同的修復方法。檢查這裏的一些答案,這幾乎肯定是找到正確的方式來包括你的jar文件-http://stackoverflow.com/questions/8678630/noclassdeffounderror-android – user1445967

1

兩種方法可以做到這一點。

  • Jar that java project and the jar to the libs folder of your Android project。
  • 作爲依賴項目添加項目到你的Android項目

兩個奇妙的工作。

不過請記住,這個pure-java項目必須添加android.jar而不是像rt.jar :)。否則你會得到Dalvik例外。

編輯: 不要忘記刷新和項目 - 清理你的Android項目。