有許多示例顯示如何在運行時在代碼中獲取包名稱。條件編譯:在編譯時獲取並測試包名稱
在我的情況下,我需要在編譯時間測試軟件包名稱。
這是我的情況:我有兩個利用庫項目的Android項目(免費和專業版)。 免費版本有一個「獲取專業版」菜單項,其他版本中不存在。 我的菜單處理代碼是這樣的:
if (item.getItemId()==R.id.getProVersion) {
//...
}
Proguard的抱怨,建立親包時R.id.getProversion不存在。 所以我需要測試哪個項目正在構建,以便從編譯中排除這部分代碼。
有沒有辦法在編譯時知道包名?
這個問題有沒有變化的解決方案?以Android爲中心或以Java爲中心的解決方案都可以。
不是我所希望的。但是我做了什麼! – tos 2012-03-16 16:06:17
我在代碼中做的是我在庫中有一個基本活動,然後將它擴展到自由和專業程序中,覆蓋「shouldDisplayAd」方法。但是,這隻適用於主要活動... – miniBill 2012-03-17 12:35:17
這確實是一種可能性。然而,在我目前的項目中,src文件夾適用於專業和免費的子項目。一切都在圖書館裏。但我也曾經在一個項目目錄不是空的。 – tos 2012-03-30 17:37:37