Ubuntu18.04下React Native Gradle构建失败问题求助
问题原因及解决方案
这问题我之前在Ubuntu环境下跑React Native项目时也碰到过,本质是Gradle运行时的环境和你终端里的环境不一致,导致它没法正确执行Node相关的命令。具体来说有这几个常见原因和对应的解决办法:
1. Gradle找不到正确的Node可执行文件路径
Android Studio启动时默认不会加载你终端的shell配置文件(比如~/.bashrc或~/.zshrc),这就导致Gradle运行时的环境变量里没有正确的Node路径——哪怕你在终端里能正常运行Node命令。
解决办法:
- 方法一:在项目的
gradle.properties文件中添加一行,指定Node的绝对路径(先用which node命令在终端里查你的Node路径):org.gradle.jvmargs=-Dnode.executable=/usr/bin/node - 方法二:在Android Studio中手动配置Node路径:
打开Settings→Build, Execution, Deployment→Build Tools→Gradle,在Node interpreter选项中选择你终端里使用的Node版本路径。
2. React Native CLI依赖结构或版本不兼容
你手动运行命令能成功,是因为在项目目录下Node会优先从本地node_modules查找依赖,但Gradle执行native_modules.gradle脚本时,可能因为依赖缓存、版本不匹配等问题找不到正确的CLI路径。
解决办法:
- 先删除现有依赖并重新安装:
rm -rf node_modules package-lock.json npm install - 检查
package.json中react-native和@react-native-community/cli的版本是否匹配,确保两者版本兼容(可参考React Native官方文档的版本对应关系)。
3. 项目目录权限问题
Gradle运行时的用户权限和你终端操作的用户权限不一致,导致它无法读取node_modules里的CLI文件。
解决办法:
给项目目录设置正确的用户权限:
sudo chown -R $USER:$USER /home/melvine/DevProjects/production/evener/mobile
4. Android Studio或Gradle缓存问题
有时候旧的缓存会导致奇怪的构建错误,清理缓存后往往能解决问题。
解决办法:
点击Android Studio顶部菜单栏的File → Invalidate Caches...,选择Invalidate and Restart,等待IDE重启后重新执行构建。
建议你先尝试第一种指定Node路径的方法,这是最常见的解决该报错的方案。
内容的提问来源于stack exchange,提问作者Melvine Nargeot
相关产品推荐
相关产品推荐

