对于具有相同名称但内容不同的接收者,Android清单合并失败

时间:2014-06-27 08:49:11

标签: android android-manifest

我对重复接收器的清单合并有问题,但内容不同。我使用以下接收器用于不同的API级别,到目前为止没有问题直到合并。由于合并而构建失败

Element receiver#.receivers.UpdateReceiver duplicated with element declared at AndroidManifest.xml:124:9

我不想创建另一个接收器并继续使用此架构。有没有办法为这些情况禁用合并,或者将接收器合并为一个但是可以选择启用具有不同意图的操作?

<receiver
    android:name=".receivers.UpdateReceiver"
    android:enabled="@bool/is_api_below_12">
    <intent-filter>
        <action android:name="android.intent.action.PACKAGE_REPLACED" />
        <data android:scheme="package" />
    </intent-filter>
</receiver>

<receiver
    android:name=".receivers.UpdateReceiver"
    android:enabled="@bool/is_api_12_and_above">
    <intent-filter>
        <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
    </intent-filter>
</receiver>

2 个答案:

答案 0 :(得分:1)

也许你可以设置

android {
   useOldManifestMerger true
}
build.gradle 文件中的

这在我的项目中运作良好 您可以查看更多详细信息here

答案 1 :(得分:1)

您可以在this answer中找到我如何修复完全相同的问题。基本上我创建了另一个类,但我使它成为一个静态内部类,以避免创建另一个文件来处理一个常见的操作。