2012-07-24 189 views
4

大家都知道,現在Android的Eclipse + ADT IDE框架doesn't support (re)using assets from a Library Project多個項目之間共享資產

相反,應用程序所使用的任何資產的資源必須存儲在資產/的應用項目本身的目錄。

我的問題是,我有8(八!)應用程序使用相同的庫項目,使用資產和前述限制的結果我必須複製/複製和同步每個資產文件到所有8個!)應用程序。

這是一個維護噩夢,它也容易出錯。

任何想法如何通過在多個應用程序項目之間共享每個資產的單個副本來解決此問題?

注意:我想避免操作系統或文件系統相關的解決方案,如硬鏈接或軟鏈接。如果它確實做了這項工作,我更喜歡像context.getAssets()這樣的解決方案。

+2

'getAssets()'是一個運行時解決方案,而不是編譯時解決方案,因此對您的情況看起來不合適,因爲它實際上並不會將資產置於每個項目中。設置硬鏈接會讓你花更少的時間寫出問題。您能否擴展您的筆記,以便我們更好地理解硬鏈接的問題以及您期望getAssets()能夠爲您實際做什麼? – CommonsWare 2012-07-24 15:30:31

+0

@CommonsWare你說得對。 'getAssets()'使用相同的有缺陷的資產機制,忽略庫項目中的所有資產。我無法使用硬鏈接,因爲這些項目位於各種Windows,Mac和Linux桌面以及筆記本電腦所訪問的共享服務器上。建議? – 2012-07-24 15:41:02

+0

將硬鏈接放在服務器上。當服務器提供這些文件時,客戶端應該忘記'asset /'目錄是硬鏈接的。或者,找出與您的版本控制系統綁定的東西以啓用共享(例如,git子模塊)。 – CommonsWare 2012-07-24 15:43:08

回答

0

自發布該問題以來可能事情已發生變化,但我能夠在Android項目中重複使用來自其他項目的資產文件。我創建了我的項目的資產文件夾作爲linked folder。我發佈了一個sample project來展示它的工作原理。