2013-03-06 44 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