Android學習之 主專案合併Library子專案中的Manifest

小呂-ICE發表於2014-08-04

一、專案背景:

        專案XX是一個按模組化規則來進行開發的,包含主模組A、子模組B、子模組C、子模組D,其中子模組B.C.D都是Library專案,並且都包含有自己的Actity等資原始檔。Android可以通過 library來引用另一個Project,但是通常我們需要把libraryactivity需要在主Projectmanifest檔案重新配置,

如在子模組B中有Activity:ShoppingCartActivity   則在Library B project中的AndroidManifest.xml中會有如下配置:

<activity
            android:name="com.xxxx.onlineshopping.ui.ShoppingCartActivity"
            android:windowSoftInputMode="adjustPan"
            android:screenOrientation="landscape" />

而在主程式A中也需要使用到該Activity,則你是否也會在主程式A中的AndroidManifest.xml中配置下該Activity呢?

如下:

<activity
            android:name="com.xxxx.onlineshopping.ui.ShoppingCartActivity"
            android:windowSoftInputMode="adjustPan"
            android:screenOrientation="landscape" />

其實 這樣是非常麻煩的 同時也是非常不靈活的。會發現我們配置了兩遍同樣的程式碼。那能否有一種方法可以達到合併AndroidManifest.xml配置檔案的作用呢?答案是有的。


二、Manifestmerger屬性的使用:

       在主程式的project.properties里加上manifestmerger.enabled=true 就可以自動合併library中的manifest了。

如下:

# Project target.
target=android-19
manifestmerger.enabled=true

android.library.reference.1=../xxxxB
android.library.reference.2=../xxxxC
android.library.reference.3=../xxxxD

注意:確保主程式的ADT版本、minSdkVersion和targetSdkVersion必須和library一致。


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

PS 小呂正在不斷的學習中完善自身、希望能與大家一起學習、交流... ...

         下面是我的微信公眾號:Ice資訊助手    歡迎大家掃一掃  關注小呂、一起學習、交流。

       







相關文章