Android Studio中React Native构建失败:Node.js版本未被正确识别
解决Android Studio构建React Native时无法识别nvm安装的Node.js问题
问题核心原因
Android Studio的Gradle构建进程并非通过交互式Shell启动,因此不会读取.bashrc中的nvm环境配置,导致构建时找不到Node.js可执行文件。
具体解决方案
1. 获取Node.js的绝对路径
在终端执行以下命令,得到nvm安装的Node.js二进制文件路径:
which node
输出示例:/home/your-username/.nvm/versions/node/v20.11.0/bin/node,我们需要的是其所在的bin目录:/home/your-username/.nvm/versions/node/v20.11.0/bin
2. 配置Android Studio的Gradle环境变量
- 打开Android Studio,进入
File > Settings > Build, Execution, Deployment > Build Tools > Gradle - 找到Environment variables区域,点击
+添加新变量:- 变量名:
PATH - 变量值:将第一步获取的bin目录放在原有PATH最前方,格式如下:
/home/your-username/.nvm/versions/node/v20.11.0/bin:$PATH
- 变量名:
- 点击
Apply和OK保存配置
3. 在项目Gradle配置中直接指定Node路径
如果上述方法无效,可直接在项目的Gradle配置中硬编码Node.js路径:
- 打开项目根目录下的
android/build.gradle,添加以下配置:project.ext { nodeExecutable = "/home/your-username/.nvm/versions/node/v20.11.0/bin/node" } - 或者在
android/app/build.gradle的React Native配置块中添加:react { nodeExecutable = "/home/your-username/.nvm/versions/node/v20.11.0/bin/node" }
4. 修改Android Studio启动方式以加载nvm环境
Ubuntu下Android Studio默认通过非交互式Shell启动,无法加载.bashrc配置,可修改启动脚本:
- 找到Android Studio的桌面快捷方式文件(通常在
~/.local/share/applications/jetbrains-studio.desktop或/usr/share/applications/jetbrains-studio.desktop) - 将
Exec行修改为:
替换Exec=bash -i -c "/path/to/android-studio/bin/studio.sh"/path/to/android-studio为你的Android Studio安装路径 - 保存后重新启动Android Studio
5. 重启Gradle Daemon并验证
在Android Studio内置终端执行以下命令,重启Gradle后台进程:
./gradlew --stop
随后重新运行构建任务,验证错误是否消失。
若需确认PATH是否生效,可在android/build.gradle中添加一个测试任务:
task printPath { doLast { println "Current PATH: " + System.getenv("PATH") } }
执行./gradlew printPath,查看输出是否包含Node.js的bin目录。
内容的提问来源于stack exchange,提问作者Gh05d
相关产品推荐
相关产品推荐

