Manifest merger failed with multiple errors, see logs

1、合并优先级
清单文件合并是按照优先级进行合并的,低优先级的清单文件内容合并到高优先级的,假如合并的时候产生了冲突就需要解决冲突
2、主工程(又区分构建体、渠道、风味) > module(按照依赖关系) > jar 包(aar)。
3、合并冲突
当低优先级的清单文件属性合并到高优先级中,假如高优先级中没有对应的属性,则直接合并,假如有并且不一样,这时候就有了冲突,应该去解决,怎么解决?
4、补充规则:
针对要合并的值不一样,该如何去合并呢?这时候就要对一些不同属性的值在不同的情况具体对待?注意manifest中的任何attribute 都可以使用补充规则
 

在这里插入图片描述

常用的需要合并的属性值有
.Android的解决方式是使用标记,合并工具会优先在高优先级的清单文件中寻找这些标记,这一点要记住。另外,在使用标记的时候,需要在根节点manifest中添加 tools 命名空间:

节点标记
merge tools:node = “merge/replace/strict/remove/removeAll/merge-only-attribute”

合并规则中很重要的一个规则是节点标记,而merge 是默认行为,当manifest 各节点属性没有声明节点标记时候,就会使用默认值。现在一一解释每个值的含义
 

merge  合并该attribute 所有的属性和子属性;
replace 替换其他的值,使用该清单文件的值(一般而言,都是替换掉低优先级的值)
strict    严格的意思,就是不同的清单文件,相同属性的值应该一样,否则编译失败。(一般而言,就是不同的清单文件同一个属性其值要一样)
remove  删除某个属性。
removeAll 删除某个属性及其嵌套的子属性。(相当于remove,不过是有些时候删除很多子属性时,方便一些)
merge-only-attribute :Merge attributes in this tag only; do not merge nested elements 。只合并属性,不合并嵌套的属性
 

属性标记
tools:remove = “attr, …” 、
tools:replace=“attr, …”
tools:strict=“attr, …”在这里插入图片描述

首先进入命令行,输入命令
gradlew processDebugManifest --stacktrace
其中,processDebugManifest是log里面提到的,这个命令是会了获取更多的log信息。在这里插入图片描述 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值