Android清单合并 - 来自库项目的不同启动器活动

500*_*865 4 merge android android-manifest

我有一个库项目,它具有以下结构:

    <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>
Run Code Online (Sandbox Code Playgroud)

在app项目中,我希望合并的清单是:

    <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>
Run Code Online (Sandbox Code Playgroud)

是否可以使用清单合并功能实现此目的?

如果我试着拥有

    <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>
Run Code Online (Sandbox Code Playgroud)

在应用程序项目的基本清单文件中,我收到以下错误.

  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)
Run Code Online (Sandbox Code Playgroud)

swo*_*oby 10

更改消费app/lib中的AndroidManifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android">
...
<activity android:name="com.comp.package.activities.A2">
Run Code Online (Sandbox Code Playgroud)

至:

<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">
Run Code Online (Sandbox Code Playgroud)