1. 程式人生 > >Android學習之 主專案合併Library子專案中的Manifest

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

一、專案背景:

        專案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資訊助手歡迎大家掃一掃關注小呂、一起學習、交流。