添加tools:node="replace"后Firebase Crashlytics无上报且清单合并冲突如何解决
解决方案
- 首先移除主清单
application节点上的全局配置tools:node="replace"与tools:node="merge"。全局替换规则会直接清除所有第三方库在application节点下自动注入的配置,Firebase Crashlytics需要的上报相关meta-data、服务配置会被直接覆盖,这是崩溃无法上报的核心原因。 - 确认主清单根节点已声明tools命名空间,没有的话补充以下配置:
xmlns:tools="http://schemas.android.com/tools"
- 针对冲突的属性逐个指定替换规则,不要全局操作
application节点:- 首先处理报错提示的
allowBackup冲突,在application标签添加属性:tools:replace="android:allowBackup" - 如果存在图标重复、应用名冲突的问题,把对应的冲突属性追加到
tools:replace的属性列表中,多个属性用英文逗号分隔即可,示例如下:tools:replace="android:allowBackup,android:icon,android:roundIcon,android:label"
- 首先处理报错提示的
- 后续如果出现其他属性合并冲突,只需按照报错提示的属性名,追加到上述
tools:replace的列表中即可,无需修改全局配置。 - 验证方案:构建完成后查看
build/intermediates/merged_manifest目录下的最终合并清单,确认Firebase Crashlytics相关的配置(如com.google.firebase.crashlytics.mapping_file_id等meta-data)正常存在,触发测试崩溃检查上报是否正常。
内容的提问来源于stack exchange,提问作者Usha Dalavi
相关产品推荐
相关产品推荐

