执行npx react-native run-android遇react-native-reanimated构建错误求助
React Native Android构建失败:CMake错误与StackOverflowError解决
问题详情
执行npx react-native run-android时应用安装失败,构建日志显示两个关键错误:
- 任务
:react-native-reanimated:configureCMakeDebug[arm64-v8a]执行失败,CMake构建react-native-reanimated的Native代码出错 - 抛出
java.lang.StackOverflowError(无额外错误信息)
环境参数:
- React Native Reanimated:2.x
- Android Gradle Plugin:7.2.1
- Gradle:7.5.1
- NDK:21.4.7075529
- CMake:3.18.1
分步解决方案
1. 修复CMake构建错误
- 清理Reanimated本地构建缓存:删除
node_modules/react-native-reanimated/android/.cxx目录,该目录存储CMake临时构建文件,清理后重新触发构建可解决缓存导致的配置错误 - 调整NDK版本:Reanimated 2.x与NDK 21.x存在兼容风险,升级NDK至24.x版本(确保与React Native 0.70.x版本匹配)
- 限制编译ABI:在
android/app/build.gradle中指定仅编译所需ABI,减少构建压力:android { defaultConfig { ndk { abiFilters 'armeabi-v7a', 'arm64-v8a' } } } - 重装依赖:删除
node_modules、package-lock.json,执行npm install后重新运行构建命令
2. 解决StackOverflowError
- 增大Gradle堆内存:在
android/gradle.properties中修改JVM参数,提升堆内存上限:org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 - 禁用Gradle守护:临时关闭守护进程避免内存溢出,执行:
gradlew.bat --no-daemon clean installDebug -PreactNativeDevServerPort=8081 - 清理Gradle全局缓存:删除用户目录下的
.gradle/caches文件夹,清除旧的缓存文件
辅助排查步骤
添加--stacktrace参数执行构建,获取完整错误堆栈,定位更具体的问题:
npx react-native run-android --stacktrace
内容的提问来源于stack exchange,提问作者FAIZ HASSAN JAMI
相关产品推荐
相关产品推荐

