Android清单合并-与库项目不同的启动器活动 [英] Android manifest merge - Different launcher activity from library project

查看:87
本文介绍了Android清单合并-与库项目不同的启动器活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个图书馆项目,其结构如下:

I have a library project which has the following structure :

    <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>

在应用程序项目中,我希望合并的清单是:

In the app project I want the merged manifest to be :

    <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>

是否可以使用清单合并功能来实现?

Is it possible to achieve this using manifest merger feature?

如果我想拥有

    <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>

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

in the base manifest file of the app project, I am getting the following error.

  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)

推荐答案

从以下应用程序/lib中更改AndroidManifest:

Change the AndroidManifest in the consuming app/lib from:

<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">

这篇关于Android清单合并-与库项目不同的启动器活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆