You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native Android编译时AndroidManifest meta-data属性冲突如何解决?

问题解决方案

冲突原因说明

这个报错是因为你的项目同时引入了已停止维护的旧版expo依赖unimodules-react-native-adapter,和新版官方维护的expo-modules-core,两个包在AndroidManifest里声明了同名的meta-data属性,导致构建冲突。

取值选择

优先使用expo.modules.adapters.react.apploader.RNHeadlessAppLoader作为最终取值,unimodules相关包已经在expo SDK 44之后全面废弃,使用旧值会导致后续新的expo生态依赖运行异常。

具体配置步骤

  • 第一步:打开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" />
  • 第三步:清理构建缓存重新编译:
cd android
./gradlew clean
cd ..
npx react-native run-android

根治方案(可选)

如果不需要兼容旧版unimodules插件,可以直接移除所有旧的unimodules相关依赖,从根源避免后续同类冲突:

  1. 卸载npm旧依赖:
npm uninstall unimodules unimodules-react-native-adapter
# 如果你用yarn就执行 yarn remove unimodules unimodules-react-native-adapter
  1. 执行上述第三步的清理编译操作即可。

内容的提问来源于stack exchange,提问作者Dorian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:45:04