【问题标题】:Android manifest merge - Different launcher activity from library projectAndroid清单合并 - 与库项目不同的启动器活动
【发布时间】:2014-02-25 15:18:51
【问题描述】:

我有一个库项目,其结构如下:

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

【问题讨论】:

    标签: android merge android-manifest


    【解决方案1】:

    将消费应用/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">
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多