我一直在回到這個問題,因爲似乎沒有一個乾淨的解決方案。有沒有人有一個很好的策略來排除Android中的子項目的資源?有條件的資源包含/排除Android版apk版本
我有兩個方案:
1 - 基本庫項目具有本地化文件爲EN,ES等
--Child項目1使用所有本地化,並且一切都很好
- -Child項目2僅本地化爲英文,但由於父資源的原因,最終的.apk將具有局部本地化(儘管ADT19添加了Lint規則以警告/阻止您執行此操作)。
我現在唯一需要的解決方案是爲本地化設置一個單獨的父庫,並且只將其包含在子項目1中。如果您有許多庫項目,這是一個很大的麻煩。
2 - 排除特定於構建的資源。我有一些圖片僅僅用於我的應用程序的Nook特定版本,這些圖片由一個標誌觸發。有條件的代碼很好用,但資源總是包含在內。
我不想爲我的每一個應用程序創建另一個子項目。有沒有辦法設置一個構建/編譯標誌來修剪特定的圖像資源,所以他們不進入最終的.apk?
第二個問題可能是特定於我的,但我很驚訝我無法找到關於第一點的任何好的討論。沒有其他開發者只能本地化一些應用程序嗎?或者大多數人只是忽略了這個問題?
我見過有關向文件添加文件的討論。apk,但是我正在尋找一些更像ProGuard的東西 - 自動化並且內置到工具中,而不是黑客入侵最終的.apk。 – ProjectJourneyman
您的場景可以通過使用外部構建工具(如Ant或Maven)來實現,它們都提供了在構建過程(編譯,dex,打包等)期間精細控制每一步的能力。如果使用Maven,通過[maven-resource-plugin](http://maven.apache.org/plugins/maven-resources-plugin/resources-mojo.html)排除資源是非常容易的。 – yorkw
我可能需要這樣。不過,我希望有一個更清潔(並且理想更簡單)的解決方案。 – ProjectJourneyman