赞
踩
在 安卓上集成 OPPO 推送,引入了com.heytap.msp-push-2.1.0.aar
,Android Studio 编译的时候出错了。
- Manifest merger failed : Attribute application@allowBackup value=(false) from AndroidManifest.xml:8:9-36
- is also present at [com.heytap.msp-push-2.1.0.aar] AndroidManifest.xml:13:18-44 value=(true).
- Suggestion: add 'tools:replace="android:allowBackup"' to <application> element at AndroidManifest.xml:7:5-117 to override.
Copy
- java.lang.RuntimeException: Manifest merger failed with multiple errors, see logs
- at com.android.build.gradle.internal.tasks.manifest.ManifestHelperKt.mergeManifestsForApplication(ManifestHelper.kt:181)
- at com.android.build.gradle.tasks.ProcessApplicationManifest.doFullTaskAction(ProcessApplicationManifest.java:218)
- at com.android.build.gradle.tasks.ProcessApplicationManifest.doIncrementalTaskAction(ProcessApplicationManifest.java:324)
- at com.android.build.gradle.internal.tasks.IncrementalTask.handleIncrementalInputs(IncrementalTask.kt:111)
- at com.android.build.gradle.internal.tasks.IncrementalTask.access$handleIncrementalInputs(IncrementalTask.kt:64)
- at com.android.build.gradle.internal.tasks.IncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(AndroidVariantTask.kt:51)
- at com.android.build.gradle.internal.tasks.IncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(AndroidVariantTask.kt:31)
- at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:91)
- at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction$gradle(IncrementalTask.kt:134)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:498)
- at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
- ...

Copy
我的项目 AndroidManifest.xml
如下:
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.example">
-
- <application
- android:allowBackup="false">
- ...
- </application>
- </manifest>
Copy
解压 com.heytap.msp-push-2.1.0.aar
,查看 AndroidManifest.xml
,内容如下:
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.heytap.mcssdk"
- android:versionCode="2100"
- android:versionName="2.1.0" >
-
- <application android:allowBackup="true" >
- ...
- </application>
- </manifest>
Copy
发现 android:allowBackup="true"
这一行,导致了备份模式设置的冲突,合并时出错。
android:allowBackup:是否允许应用参与备份和恢复基础架构。如果将此属性设为 false,则永远不会为该应用执行备份或恢复,即使是采用全系统备份方法也不例外(这种备份方法通常会通过 adb 保存所有应用数据)。此属性的默认值为 true。
为了保持一致,有2种解决方法。
android:allowBackup
设置为 true
,或者直接删除,因为默认为 true
。
可以确保备份模式统一为 false
,即关闭。
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- package="com.example">
-
- <application
- android:allowBackup="false"
- tools:replace="android:allowBackup">
- ...
- </application>
- </manifest>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。