2012-10-12 66 views
2

我需要關於Android SDK中項目依賴項問題的幫助。Android項目依賴項

我有以下項目: 「同步」(在Java唯一項目) 「Agonis」(一個Android庫項目) 「Dragonis」(Android應用項目)

Agonis有一個項目依賴同步,並Dragonis對Agonis項目依賴,就像這樣:

Dragonis-> Agonis->同步

我已經正確地使用屬性 - > Android->庫對話框添加Agonis作爲一個Android庫。我已出口的Agonis構建路徑設置同步項目:

http://i.stack.imgur.com/GsQIR.png

在Dragonis項目中,我看到兩個Agonis並同步在「Android的依賴關係」虛擬文件夾:

http://i.stack.imgur.com/EhH8L.png

從這裏,我希望一切都能正常工作,但事實並非如此。

我可以啓動應用程序,但只要我從Agonis項目(com.mob.agonis.AgonisServer)實例化一個類型,就會得到一個NoClassDefFoundError。如果它很重要,我嘗試實例化的Agonis類型擴展了同步項目(com.mob.sync.Server)中的類型。

我試着清理所有的項目,並使用Android工具 - >修復項目屬性在Agonis和Dragonis無濟於事。

我可以俯視嗎?

回答

0

我想通了。

Sync Java-only庫正在編譯爲1.7 Java字節碼。 Android僅支持將Java 1.6字節代碼轉換爲DEX。

滾動到控制檯的頂部,孩子。

0

將jar庫放入文件夾庫並將其添加到java構建的路徑。
右鍵單擊文件 - >構建路徑 - >添加到構建路徑
希望它有幫助。

+0

我希望我不會訴諸這一點。這需要每次對項目依賴項進行更改時手動複製該jar,這經常發生。 – mafian911

0

你可以通過命令行工具解決這個問題。您可以創建/更新Dragonis和Agonis android項目 - 其中一個作爲應用程序,另一個作爲庫。請參閱http://developer.android.com/tools/projects/projects-cmdline.html

您可以使用命令行工具輕鬆設置從D - > A的依賴關係,如引用庫項目一節中所示。在這個階段,構建D會自動觸發構建A.

現在修改A的build.xml以包含依賴關係:在預編譯階段構建並複製Sync.jar(查看構建內部.xml查找佔位符)。構建和複製任務可以通過使用subant啓動子螞蟻進程來完成。請參閱http://ant.apache.org/manual/Tasks/subant.html

在此階段,如果觸發ant構建,所有依賴項都可以在命令行上正常工作。現在你也可以通過從源代碼導入android項目Dragonis來使用eclipse。

0

從「Sync」項目屬性中將「Java Compiler」 - >「JDK Complience」設置爲1.6。重建並享受!