React Native + Expo项目编译失败,开启/关闭新架构均出现报错
我太懂你现在的两难处境了——关新架构Reanimated直接拦着不让过,开了新架构又卡在CMake配置上,折腾了Java路径、Gradle版本、JDK版本都没解决,确实头疼。咱们一步步拆解问题来处理:
问题复现
目前遇到两个互斥的编译报错:
关闭新架构(
newArchEnabled=false):编译卡在react-native-reanimated:assertNewArchitectureEnabledTask任务,提示:[Reanimated] Reanimated requires new architecture to be enabled. Please enable it by setting
newArchEnabledtotrueingradle.properties.开启新架构(
newArchEnabled=true):编译到react-native-worklets:configureCMakeDebug[arm64-v8a]直接失败,之前尝试过调整Java安装路径、更换Gradle版本(从<8.10到8.10.2再到8.14.3)、切换JDK版本(24→21→17)、在gradle.properties指定JDK路径,均无效。
针对性解决方案
一、如果想暂时关闭新架构:解决Reanimated强制依赖问题
你大概率是装了Reanimated 4.x及以上版本,这个版本开始强制要求新架构。如果项目暂时不需要新架构,可按以下步骤处理:
- 降级Reanimated到3.x稳定版(比如3.10.1),这个版本支持旧架构:
npm install react-native-reanimated@3.10.1 - 清理所有缓存并重新预构建:
npx expo prebuild --clean cd android && ./gradlew clean cd .. && rm -rf node_modules package-lock.json && npm install - 确认
gradle.properties里newArchEnabled=false,再重新执行编译。
二、如果要开启新架构:解决CMake编译失败问题
针对react-native-worklets的CMake报错,试试这些步骤:
匹配兼容的NDK版本
你当前用的NDK27.x版本可能和Worklets/新架构兼容性不好,建议降级到React Native新架构常用的稳定版本NDK25.2.9519653:
在android/build.gradle里修改NDK版本:buildscript { ext { ndkVersion = "25.2.9519653" } }然后清理Android构建缓存:
cd android && ./gradlew cleanBuildCache配置CMake环境变量
确保CMake已安装并加入系统PATH:- 打开Android Studio → SDK Manager → SDK Tools,勾选CMake(推荐3.22.1版本)完成安装
- 找到CMake安装路径(一般是
C:\Users\你的用户名\AppData\Local\Android\Sdk\cmake\3.22.1\bin),添加到系统PATH环境变量 - 重启终端,执行
cmake --version确认能正常调用
增加Gradle编译内存
在gradle.properties里添加JVM参数,避免CMake编译时内存不足:org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=512m重新预构建项目
执行以下命令刷新项目配置:npx expo prebuild --clean npx expo run:android
三、通用排查步骤
- 确保依赖版本兼容:检查
package.json里的react-native、expo、react-native-reanimated、react-native-worklets-core版本是否匹配你当前Expo SDK的要求 - 清理系统环境变量冗余项:把
PATH里的C:\Program Files\Common Files\Oracle\Java\javapath移除,只保留%JAVA_HOME%\bin(指向JDK17根目录),重启电脑生效 - 全量清理缓存:
npx expo start --clear rm -rf node_modules package-lock.json npm install cd android && ./gradlew clean && cd ..
按照这些步骤一步步来,应该能解决你的编译问题,如果还有更细节的CMake错误日志,随时贴出来咱们再继续排查~




