2011-09-29 49 views
12

我正在使用Maven Android插件來構建我的應用程序。其實,我正在構建同一個應用程序的3個「品牌」版本(應用程序圖標,顏色等等......更改,但不包括功能)。我知道我需要爲每個應用程序使用不同的包名,因爲它們被認爲是不同的。Maven Android插件的變量包名稱

到目前爲止,我已經成功地擁有「動態」的價值觀,在strings.xml中使用Maven過濾器:

<string name="app_name">${app_name}</string> 
<string name="widget_name">${widget_name}</string> 
<string name="app_icon">${app_icon}</string> 

的問題是,這並不能作爲包名工作!如果我做的:

<manifest package="${foo.bar}"> 

ADT(當然,實際上是XML驗證)抱怨說屬性包有無效字符「$」

我找不到任何辦法解決這個...有沒有一種告訴ADT啓動Maven資源過濾或類似功能的方法?

回答

17

經過深入研究,它看起來相當簡單!

您只需要在Maven Android Plugin的配置中添加<renameManifestPackage>即可。似乎開始工作版本> 2.9.0:

<plugin> 
    <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
    <artifactId>maven-android-plugin</artifactId> 
    <version>2.9.0-beta-5</version> 
    <configuration> 
     ... 
     <renameManifestPackage>${manifest_package}</renameManifestPackage> 
    </configuration> 
</plugin> 
+1

它是否適合你?我得到的應用程序無法安裝到仿真器 –

+0

好的。它的工作原理,但我試圖安裝這兩個應用程序時得到問題 –

+0

男人,這是一年半前回答,它曾經工作,不知道現在用最新的SDK,對不起 – mexique1