2013-03-06 65 views
4

我有具有以下結構的庫項目不同的發射活動:Android清單合併 - 從庫項目

<activity android:name="com.comp.package.activities.A1"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity> 
    <activity android:name="com.comp.package.activities.A2"> 
    </activity> 
    <activity android:name="com.comp.package.activities.A3"> 
    </activity> 
    <activity android:name="com.comp.package.activities.A4"> 
    </activity> 

在應用項目,我希望合併後的清單是:

<activity android:name="com.comp.package.activities.A2"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity> 
    <activity android:name="com.comp.package.activities.A1"> 
    </activity> 
    <activity android:name="com.comp.package.activities.A3"> 
    </activity> 
    <activity android:name="com.comp.package.activities.A4"> 
    </activity> 

使用清單合併功能可以實現這一點嗎?

如果我努力

<activity android:name="com.comp.package.activities.A2"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity> 
在應用項目的基本清單文件

,我收到以下錯誤。

Trying to merge incompatible /manifest/application/activity[@name=com.comp.package.activities.A2] element: 
    <activity 
     @android:name="com.comp.package.activities.A2"> 
    -- <intent-filter> 
    --  <action 
    --   @android:name="android.intent.action.MAIN"> 
    <activity 
     @android:name="com.comp.package.activities.A2"> 
    ++</activity> 
    ++(end reached) 

回答

8

變化從消費應用程序/ lib中AndroidManifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"> 
... 
<activity android:name="com.comp.package.activities.A2"> 

要:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools"> 
... 
<activity android:name="com.comp.package.activities.A2" 
    tools:merge="override"> 
+2

我想給你100分! – Ilario 2014-10-16 10:10:45

+0

我愛你的男人! – 2015-10-30 06:32:05

+0

此解決方案bitrotted。在這裏看到一個工作:http://stackoverflow.com/questions/21239844/gradle-merge-wrapper-sub-modules-android-manifest-into-a-main-modules-manifest – Oded 2016-09-16 05:48:50