Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cannot execute binary file #852

Open
jifangxia opened this issue Jul 4, 2024 · 1 comment
Open

cannot execute binary file #852

jifangxia opened this issue Jul 4, 2024 · 1 comment

Comments

@jifangxia
Copy link

jifangxia commented Jul 4, 2024

Mac OS sonoma 14.5

创建项目:npx react-native@latest init AwesomeProject1
输出: sh: /Users/admin/.npm/_npx/dea611a43221eddd/node_modules/.bin/react-native: cannot execute binary file

@jifangxia jifangxia changed the title exec format error cannot execute binary file cannot execute binary file Jul 4, 2024
@ry-krystal
Copy link

你在 macOS Sonoma 14.5 上创建 React Native 项目时遇到 cannot execute binary file 的错误,这是由于 npx 下载的 react-native 可执行文件无法正确执行,通常是因为权限问题或者系统架构不匹配导致的。

解决问题的步骤:

  1. 清理 npx 缓存
    npx 使用缓存机制来存储下载的包,缓存文件可能损坏,导致无法执行可执行文件。你可以尝试清理 npx 的缓存:
    npx clear-npx-cache
    或者手动删除缓存目录:
    rm -rf /Users/admin/.npm/_npx
    这样可以确保 npx 从头下载依赖,而不是使用损坏的缓存。

  2. 检查 Node.js 版本
    确保你安装的 Node.js 版本符合 React Native 的要求。React Native 通常推荐使用 Node.js 14 及以上的版本。
    检查当前 Node.js 版本:
    node -v
    如果你的 Node.js 版本太低或者不兼容,建议升级 Node.js。你可以使用 nvm切换 Node.js 版本:
    nvm install --lts
    nvm use --lts

  3. 重新安装 react-native-cli
    有时,直接使用 npx 下载并运行 react-native-cli 可能会遇到问题。你可以尝试全局安装 react-native-cli,然后创建项目:
    先卸载本地或全局的 React Native CLI:
    npm uninstall -g react-native-cli
    然后重新安装:
    npm install -g react-native-cli
    创建项目:
    react-native init AwesomeProject1

  4. 确认系统架构(Apple Silicon 与 x86_64)
    如果你使用的是 Apple Silicon(M1、M2)芯片,可能有一些工具是为 x86 架构构建的,因此需要在 Rosetta 模式下运行。
    检查你当前的架构:
    uname -m
    如果输出为 arm64,你使用的是 Apple Silicon。如果某些工具是为 x86_64 构建的,你可以尝试在 Rosetta 2 环境下运行终端。
    通过 Rosetta 运行终端:
    找到应用程序中的终端应用,右键点击,选择“获取信息(Get Info)”。
    选中“使用 Rosetta 打开”,然后重新打开终端。
    在 Rosetta 终端中尝试重新运行创建命令:
    npx react-native@latest init AwesomeProject1

  5. 检查文件权限
    如果可执行文件的权限不正确,也可能导致此错误。可以尝试手动更改文件权限:
    chmod +x /Users/admin/.npm/_npx/dea611a43221eddd/node_modules/.bin/react-native
    然后再尝试运行 npx 命令。

  6. 升级 npm 版本
    npx 是 npm 的一部分,如果你的 npm 版本太旧,可能会导致执行错误。可以尝试更新 npm:
    npm install -g npm@latest
    然后重新运行 npx 命令。

  7. 尝试 Yarn
    如果 npx 的问题依然没有解决,可以尝试使用 yarn 来代替 npx 创建项目:
    先全局安装 Yarn:
    npm install -g yarn
    使用 Yarn 初始化项目:
    yarn create react-native-app AwesomeProject1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants