快速解决Android编译报错 : Manifest merger failed with multiple errors, see logs

编译项目的时候,遇到Android Manifest合并失败的情况就挺头疼的。

Manifest merger failed with multiple errors, see logs

在这里插入图片描述

直接运行项目,看不出来问题,以前都是通过

gradlew build --debug --info --stacktrace

来排查问题,但是使用这种方式,编译就很慢,每次要等上个5、6分钟,可能还得编译几次才能解决成功,挺影响效率的。

今天发现了一个新的命令,可以专门针对Manifest来进行编译

gradlew processDebugManifest --stacktrace

这就很香了,只需要几秒钟时间,就可以排查出问题了

例如这次我编译又出现了这个报错,Manifest如下所示

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.xxxx.yyyy">
    <!--省略...-->
	<application
	        android:name=".App"
	        android:allowBackup="false"
	        android:icon="@mipmap/app_logo"
	        android:label="${APP_NAME}"
	        android:networkSecurityConfig="@xml/network_security_config"
	        android:theme="@style/AppTheme"
	        tools:replace="android:label">
	</application>
    <!--省略...-->
</manifest>

我们执行gradlew processDebugManifest --stacktrace这个命令
在这里插入图片描述
可以看到,任务花费时间3077毫秒,然后很明确地帮我们指出了出错的地方
按照这个提示,可以知道tools:replace="android:label"缺少android:allowBackup
我们给加上 tools:replace="android:label,android:allowBackup"

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.xxxx.yyyy">
    <!--省略...-->
	<application
	        android:name=".App"
	        android:allowBackup="false"
	        android:icon="@mipmap/app_logo"
	        android:label="${APP_NAME}"
	        android:networkSecurityConfig="@xml/network_security_config"
	        android:theme="@style/AppTheme"
	        tools:replace="android:label,android:allowBackup">
	</application>
    <!--省略...-->
</manifest>

再次运行,可以发现编译成功了。

PS : 需要注意的是,tools:replace里添加的属性,在app的manifest中必须要显式声明,否则就会报tools:replace specified, but no new value specified的错误了,具体可以看 https://blog.csdn.net/u010111268/article/details/102920918

  • 19
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

氦客

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值