React Native 0.63.4升级至0.70.1后:app:processDebugMainManifest构建失败求助
解决React Native 0.70.1升级中的
:app:processDebugMainManifest FAILED错误 一、修复XML解析异常(禁止匹配"[xX][mM][lL]"的处理指令目标)
- 扫一遍项目里所有的
AndroidManifest.xml文件——包括主项目和第三方依赖的,定位到行10列6附近的重复<?xml version="1.0" encoding="utf-8"?>声明。通常是某个依赖的Manifest多写了这个根指令,导致合并时冲突。 - 用Android Studio的Merge Manifest工具查详情:打开
app/src/main/AndroidManifest.xml,底部切到Merged Manifest标签,能看到哪个依赖带了重复的XML声明。如果是本地依赖,直接改它的Manifest;如果是远程依赖,在app/build.gradle的dependencies里排除它的Manifest:implementation('com.example:problem-dependency:1.0') { exclude manifest: 'AndroidManifest.xml' } - 顺带检查主项目Manifest有没有语法错误,比如标签没闭合、特殊字符没转义。
二、解决Java栈溢出错误
- 替换
gradle.properties里的org.gradle.jvmargs配置,增大堆和栈内存:
核心是加org.gradle.jvmargs=-Xmx4096m -Xss2m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 --add-opens java.base/java.io=ALL-UNNAMED-Xmx4096m(堆内存)和-Xss2m(栈内存),默认内存太小会在处理嵌套依赖时溢出。 - 清掉Gradle缓存再重建:终端执行
./gradlew clean,然后跑./gradlew assembleDebug。
三、验证JSC版本配置的影响
- React Native 0.70.x默认用的JSC版本就是
r250230,你的修改没问题,但要确保android/build.gradle的仓库配置里有Google Maven:allprojects { repositories { google() mavenCentral() // 其他仓库... } } - 如果还碰到JSC相关问题,直接切到Hermes引擎更省心(RN 0.70官方推荐),在
android/app/build.gradle里开启:
同样清缓存后重建。project.ext.react = [ enableHermes: true, ]
额外排查点
- 确认所有第三方依赖都适配RN 0.70.x,比如旧版
react-native-gesture-handler、react-native-reanimated这类常用库很容易引发Manifest冲突,直接升级到兼容版本。 - 检查
android/gradle/wrapper/gradle-wrapper.properties里的Gradle版本是否匹配RN 0.70要求(对应Gradle 7.3.3左右):distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip
内容的提问来源于stack exchange,提问作者jem4789
相关产品推荐
相关产品推荐

