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

升级React Native后Gradle识别Node.js版本错误问题

问题原因及解决办法

核心问题

你通过nvm切换的Node 21.5版本,并没有被Gradle构建进程识别到——Gradle调用的是系统全局安装的Node 16.20.2,所以触发了版本不兼容的报错。

具体解决步骤

1. 确保终端加载nvm环境

先检查你的终端配置文件(~/.bashrc或~/.zshrc)里有没有nvm的初始化代码,比如:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

如果有,执行source ~/.bashrc(bash终端)或source ~/.zshrc(zsh终端)刷新环境,再重新运行构建命令。

2. 让IDE内置终端读取nvm配置

如果你是用Android Studio的内置终端构建,需要设置它使用登录shell:

  • 打开Android Studio的Settings → Tools → Terminal
  • 把Shell path改成/bin/bash -l或/bin/zsh -l(加-l会加载登录环境,包括nvm的配置)
  • 重启IDE后,在终端里输入node -v确认版本是21.5,再重新构建项目。

3. 强制Gradle使用指定的Node路径

直接在项目的全局build.gradle(根目录下的那个,不是app模块里的)里添加配置,指定nvm管理的Node绝对路径:

buildscript {
    ext {
        nodeExecutable = "/Users/你的用户名/.nvm/versions/node/v21.5.0/bin/node" // 替换成你自己的Node路径
    }
}

或者在gradle.properties文件里加一行:

node.executable=/Users/你的用户名/.nvm/versions/node/v21.5.0/bin/node

4. 清理系统全局Node的干扰

执行which node,如果输出的路径不是nvm的目录(比如/usr/local/bin/node),说明系统有全局安装的Node:

  • 执行nvm alias default 21.5.0,把nvm的21.5设为默认版本
  • 重启终端后再确认node -v是否正确,必要时可以卸载系统全局的Node。

5. 先验证环境再构建

每次调整后,先在终端执行以下命令确认环境正确:

node -v
nvm current
which node

确认输出的都是21.5版本和nvm的路径后,再运行npx react-native run-android或者在IDE里重新构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 16:12:52