React Native构建Android应用出现gradle manifest merge错误
Manifest 合并冲突解决方案
问题原因
项目同时依赖了已废弃的unimodules系列包和新版expo-modules-core,两个包在各自的AndroidManifest.xml中声明了相同key的meta-data配置,导致构建时合并冲突。
临时快速修复
直接按照报错提示添加配置覆盖规则即可,无需修改依赖:
- 打开项目路径下的
android/app/src/main/AndroidManifest.xml - 确认根节点
<manifest>中已添加tools命名空间声明,没有的话补上:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="你的应用包名">
- 在
<application>标签内部添加如下meta-data节点:
<meta-data android:name="org.unimodules.core.AppLoader#react-native-headless" android:value="expo.modules.adapters.react.apploader.RNHeadlessAppLoader" tools:replace="android:value" />
如果你的Manifest中已经存在该节点,只需要给它新增tools:replace="android:value"属性即可
根源修复(推荐)
冲突的根本原因是旧的unimodules已经被Expo官方废弃,和新版expo模块不兼容,直接移除旧依赖即可:
- 打开项目根目录的
package.json,删除所有前缀为unimodules-的依赖项 - 执行包安装命令:
# 使用npm的情况 npm install # 使用yarn的情况 yarn install - 清理安卓构建缓存:
cd android ./gradlew clean - 重新执行构建命令即可
内容的提问来源于stack exchange,提问作者Guillaume Theret
相关产品推荐
相关产品推荐

