Manifest merger failed with multiple errors, see logs

背景

用Jenkins构建android自动化打包时,以前都是OK的,因为构建脚本需要,升级了classpath 'com.android.tools.build:gradle:3.3.0',也就是gradle-4.10.1之后就一直报这个错误。
因为项目是4个module组成,每个module都包含一个AndroidManifest.xml,既然说是merger failed,那就是像git一样合并失败了。

解决方法

1、gradlew processDebugManifest --stacktrace

运行完之后并没有任何可用信息


2、在android studio里打开主module的AndroidManifest.xml,点击左下角Merged Manifest.

这里才算是找到了问题所在,我的AndroidManifest.xml:193行有问题

Merging Errors: Error: 
Attribute meta-data#JPUSH_CHANNEL@value at AndroidManifest.xml:193:13-51 
requires a placeholder substitution but no value for <JPUSH_CHANNEL_VLAUE>
is provided. app main manifest (this file), line 192
AndroidManifest.xml里的配置
build.gradle里的配置

这个错误非常的幼稚但是又非常的隐晦,因为字母拼写错误,xml里拼写的是VLAUE而gradle里拼写的是VALUE,手速太快的情况下是会犯这个错误,活活被自己蠢哭!

推荐阅读更多精彩内容