This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.

"React Native 版本不匹配" 错误

编辑页面

了解 React Native 版本不匹配的含义,以及如何在 Expo 或 React Native 应用中解决它。


在开发 Expo 或 React Native 应用时,常常会遇到如下错误:

Terminal
React Native 版本不匹配。
JavaScript 版本:X.XX.XNative 版本:X.XX.X
请确保你已经重新构建了原生代码...

这个错误意味着什么

你在终端中运行的打包器(使用 npx expo start)所使用的 react-native JavaScript 版本,与设备或模拟器上的原生应用版本不同。这种情况可能发生在你升级了 React Native 或 Expo SDK 版本之后,或者 连接到了错误的本地开发服务器。

如何修复

  • 关闭所有正在运行的开发服务器(你可以使用 ps 命令列出所有终端进程,并使用 ps -A | grep "expo\|react-native" 搜索 Expo CLI 或 React Native Community CLI 进程)。

  • 如果这是一个 Expo 项目,请从你的 app.json 文件中移除 sdkVersion 字段,或者确保它与 package.json 文件中的 expo 依赖版本一致。

  • 如果这是一个 Expo 项目,你应该确保你的 react-native 版本正确。运行 npx expo-doctor 会显示你应该安装的 react-native 版本警告。如果你确实升级到了更新的 SDK,请确保运行 npx expo install --fix 并按照提示操作。Expo CLI 会确保 exporeact-native 等包的依赖版本保持一致。

  • 如果这是一个 现有的 React Native 项目,并且在升级 React Native 版本后立刻出现此错误,你应该仔细检查是否正确完成了每一个升级步骤。

  • 最后:

    • 通过运行 rm -rf node_modules && npm cache clean --force && npm install && watchman watch-del-all && rm -rf $TMPDIR/haste-map-* && rm -rf $TMPDIR/metro-cache && npx expo start --clear 清除打包器缓存
      • 如果你使用的是 npm,可在这里找到相关命令。
      • 如果你使用的是 Windows,可在这里找到相关命令。
    • 如果这是一个现有的 React Native 项目,请运行 npx pod-install,然后重新构建你的原生项目(运行 yarn android 重新构建 Android,运行 yarn ios 重新构建 iOS)