2012-02-12 104 views
0

我有一個使用源代碼中的「庫」的庫android項目「庫」(帶有活動和全部)以及普通的Android項目「應用程序」。庫不是獨立編譯的。使用其他第三方庫的Android庫項目

一切正常。問題是使用第三方編譯的罐子「外部罐子」。 我的「圖書館」正在使用所有的「外部罐子」。 「應用程序」只能訪問「庫」。 「外部罐子」只能通過「庫」訪問。

問題是,「應用程序」需要在其構建路徑中具有所有「外部罐子」以使應用程序正常工作。什麼是neccessery? 「應用程序」不直接調用任何「外部罐子」。

所以我已經將Jars添加到「App」和「Library」中。有沒有什麼方法可以讓「應用程序」在構建路徑中不需要「罐子」?

我問這是因爲我擔心額外的應用程序大小,因爲我不能讓proguard以這種方式工作。

回答

1

您所依賴的外部庫項目應該將它們的庫包含在它們的libs目錄中。 Android構建過程將負責將這些內容作爲您的apk的構建的一部分從庫中引入。這有時會導致eclipse中的問題,所以即使你必須有eclipse,將這些jar添加到「引用庫」或項目構建路徑,當你生成apk時,如果庫是一個android庫,並且它的依賴關係在庫中,那麼你不需要做任何特別的事情。

+0

好吧,這是日食問題?因爲我沒有看到發生在螞蟻身上。 – weakwire 2012-02-13 00:05:30

+1

嗯,它有點複雜:)當你用螞蟻建立時,有一個圖書館建立步驟,把圖書館變成一個罐子。在eclipse中,通過將源鏈接到項目來訪問庫項目。 ant構建需要額外的步驟來編譯庫的依賴到jar中,而eclipse不需要。這意味着在Eclipse中必須手動添加庫依賴關係到父項,以便在工作臺中進行編譯。我不確定爲什麼會存在這個限制,但它似乎只是eclipse的一個工具問題。 – 2012-02-13 04:30:14

相關問題