You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

React Native + Expo项目编译失败,开启/关闭新架构均出现报错

React Native + Expo项目编译失败,开启/关闭新架构均出现报错

我太懂你现在的两难处境了——关新架构Reanimated直接拦着不让过,开了新架构又卡在CMake配置上,折腾了Java路径、Gradle版本、JDK版本都没解决,确实头疼。咱们一步步拆解问题来处理:

问题复现

目前遇到两个互斥的编译报错:

  1. 关闭新架构(newArchEnabled=false:编译卡在react-native-reanimated:assertNewArchitectureEnabledTask任务,提示:

    [Reanimated] Reanimated requires new architecture to be enabled. Please enable it by setting newArchEnabled to true in gradle.properties.

  2. 开启新架构(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.propertiesnewArchEnabled=false,再重新执行编译。

二、如果要开启新架构:解决CMake编译失败问题

针对react-native-worklets的CMake报错,试试这些步骤:

  1. 匹配兼容的NDK版本
    你当前用的NDK27.x版本可能和Worklets/新架构兼容性不好,建议降级到React Native新架构常用的稳定版本NDK25.2.9519653
    android/build.gradle里修改NDK版本:

    buildscript {
      ext {
        ndkVersion = "25.2.9519653"
      }
    }
    

    然后清理Android构建缓存:

    cd android && ./gradlew cleanBuildCache
    
  2. 配置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确认能正常调用
  3. 增加Gradle编译内存
    gradle.properties里添加JVM参数,避免CMake编译时内存不足:

    org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=512m
    
  4. 重新预构建项目
    执行以下命令刷新项目配置:

    npx expo prebuild --clean
    npx expo run:android
    

三、通用排查步骤

  • 确保依赖版本兼容:检查package.json里的react-nativeexporeact-native-reanimatedreact-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错误日志,随时贴出来咱们再继续排查~

火山引擎 最新活动