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

Orh*_*but 5 android android-manifest

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

Element receiver#.receivers.UpdateReceiver duplicated with element declared at AndroidManifest.xml:124:9
Run Code Online (Sandbox Code Playgroud)

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

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

Sco*_*zjj 1

也许你可以设置

android {
   useOldManifestMerger true
}
Run Code Online (Sandbox Code Playgroud)

在你的build.gradle文件中,这在我的项目中工作得很好,你可以在这里看到更多细节

  • 来自[文档](http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger): **在 1.0 中,我们删除了调用旧清单合并的功能**。 (4认同)