React Native Cannot run program “node“问题

概述

说明:我的MAC系统版本是12.6.3,MAC系统13.2.1已经修复此问题。

前几天mac重装系统了,用Android studio重新构建React native项目时,报Cannot run program "node"错误。

电脑系统为macOS 12.6.3 (Monterey),M1 Pro芯片。设备信息如下图所示:
在这里插入图片描述
完整错误信息如下图所示:
在这里插入图片描述

错误分析

刚开始看到错误信息时,比较困惑,完全不知道错误是什么意思,查了一些资料后,才想起来,之前也遇到过同样的错误。

看了一些资料后,再回过头来仔细查看错误信息,发现错误信息还是比较明确。

// 错误原因:执行这一条命令失败,导致构建失败
:ReactNative:Running '[node,-e, console.log(require('react-native/cli').bin);]' command failed. 
// 发生错误的具体代码位置
*Where:
Script '/Users/xxx/xxx/xxx/node_modules/@react-native-community/cli-platform-android/native_modules.gradle' line:189
// 错误更详细原因,“node,-e, console.log(require('react-native/cli').bin);”这条命令执行,需要使用node,但无法运行node,所以报错
* What went wrong:
A problem occurred evaluating script.
>Cannot run program "node" (in directory "/Users/xxx/xxx/xxx/android"):error=2, No such file or directory

看一下报错的具体代码位置:
在这里插入图片描述
是在node_modules/@react-native-community/cli-platform-android/native_modules.gradle文件中。

所以错误发生的过程是:

  1. Android studio使用gradle构建React native项目,需要执行一些gradle脚本;
  2. gradle脚本中,需要使用node运行一些命令,处理js相关代码;
  3. 使用node运行命令时,发现node无法运行,所以报错,导致整个构建失败。

解决方案

错误产生的原因已经分析出来了,因为node无法运行。
但我的电脑中已经安装了node,并配置好了环境变量:
在这里插入图片描述
查看了相关资料后(google、stackoverflow),发现这是mac M1芯片才有的问题。stackoverflow上比较有效的解决方案是(本人也是使用此种方式),在终端用以下命令打开Android studio:

open -a /Applications/Android\ Studio.app

至于为什么使用这个命令打开Android studio,就能解决这个问题,暂时未深究。

附注:在jenkins中打包,node版本过低(比如10版本),我也遇到过这个问题,解决方案是升级node到14版本,并在jenkins打包设置中配置环境变量。

参考资料

stackoverflow-61922174
github-react-native-community-issues-1457
stackoverflow-67337836

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将Node.js程序转换为React Native应用,并在安卓上运行,你可以按照以下步骤进行操作: 1. 确保你已经安装了Node.jsReact Native的开发环境。你可以参考React Native的官方文档(https://reactnative.dev/docs/environment-setup)进行设置。 2. 在你的React Native项目目录中,打开终端并执行以下命令安装必要的依赖: ``` npm install ``` 3. 创建一个新的React Native组件,该组件将作为你的应用程序的入口点。你可以使用`react-native init`命令创建一个新的React Native项目,或者直接在现有的项目中创建一个新的组件。 4. 在新创建的组件中,使用React Native提供的组件和API来实现你的应用程序逻辑。你需要根据你的Node.js程序逻辑进行相应的改写和调整。 5. 如果你的Node.js程序有依赖其他Node模块,你需要使用React Native的兼容模块或者寻找适当的替代方案来满足相同的需求。 6. 当你完成了React Native应用程序的开发,你可以使用以下命令将其构建为安卓应用: ``` npx react-native run-android ``` 确保你已经连接了安卓设备或者配置了模拟器,以便能够在设备上运行应用程序。 这些步骤将帮助你将Node.js程序转换为React Native应用,并在安卓上运行。请注意,由于Node.jsReact Native之间的差异,你可能需要进行一些额外的调整和改进来适应React Native的开发模式和环境。 希望对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值