当前位置:   article > 正文

集成 oppo 推送,运行APP出现叉,default activity not found_cannot use @taskaction annotation on method increm

cannot use @taskaction annotation on method incrementaltask.taskaction$gradl

集成 oppo 推送 Manifest merger failed : Attribute application@allowBackup value=(false) from

问题描述

在 安卓上集成 OPPO 推送,引入了com.heytap.msp-push-2.1.0.aar ,Android Studio 编译的时候出错了。

  1. Manifest merger failed : Attribute application@allowBackup value=(false) from AndroidManifest.xml:8:9-36
  2. is also present at [com.heytap.msp-push-2.1.0.aar] AndroidManifest.xml:13:18-44 value=(true).
  3. Suggestion: add 'tools:replace="android:allowBackup"' to <application> element at AndroidManifest.xml:7:5-117 to override.

Copy

  1. java.lang.RuntimeException: Manifest merger failed with multiple errors, see logs
  2. at com.android.build.gradle.internal.tasks.manifest.ManifestHelperKt.mergeManifestsForApplication(ManifestHelper.kt:181)
  3. at com.android.build.gradle.tasks.ProcessApplicationManifest.doFullTaskAction(ProcessApplicationManifest.java:218)
  4. at com.android.build.gradle.tasks.ProcessApplicationManifest.doIncrementalTaskAction(ProcessApplicationManifest.java:324)
  5. at com.android.build.gradle.internal.tasks.IncrementalTask.handleIncrementalInputs(IncrementalTask.kt:111)
  6. at com.android.build.gradle.internal.tasks.IncrementalTask.access$handleIncrementalInputs(IncrementalTask.kt:64)
  7. at com.android.build.gradle.internal.tasks.IncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(AndroidVariantTask.kt:51)
  8. at com.android.build.gradle.internal.tasks.IncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(AndroidVariantTask.kt:31)
  9. at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:91)
  10. at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction$gradle(IncrementalTask.kt:134)
  11. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  12. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  13. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  14. at java.lang.reflect.Method.invoke(Method.java:498)
  15. at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
  16. ...

Copy

我的项目 AndroidManifest.xml 如下:

  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  2. package="com.example">
  3. <application
  4. android:allowBackup="false">
  5. ...
  6. </application>
  7. </manifest>

Copy

解决方法

解压 com.heytap.msp-push-2.1.0.aar ,查看 AndroidManifest.xml ,内容如下:

  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  2. package="com.heytap.mcssdk"
  3. android:versionCode="2100"
  4. android:versionName="2.1.0" >
  5. <application android:allowBackup="true" >
  6. ...
  7. </application>
  8. </manifest>

Copy

发现 android:allowBackup="true" 这一行,导致了备份模式设置的冲突,合并时出错。

android:allowBackup:是否允许应用参与备份和恢复基础架构。如果将此属性设为 false,则永远不会为该应用执行备份或恢复,即使是采用全系统备份方法也不例外(这种备份方法通常会通过 adb 保存所有应用数据)。此属性的默认值为 true。

为了保持一致,有2种解决方法。

1. 将 android:allowBackup 设置为true

android:allowBackup 设置为 true,或者直接删除,因为默认为 true

2. 增加 tools:replace="android:allowBackup"

可以确保备份模式统一为 false,即关闭。

  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. package="com.example">
  4. <application
  5. android:allowBackup="false"
  6. tools:replace="android:allowBackup">
  7. ...
  8. </application>
  9. </manifest>
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/432643
推荐阅读
  

闽ICP备14008679号