反应本机 "The expo SDK requires Expo to run. .... this code is not running on Expo."

React Native "The expo SDK requires Expo to run. .... this code is not running on Expo."

我正在使用 React Native 进行编码。当我第一次创建用于检查 运行 的 react-native 应用程序时,我没有看到这一点。当我实现我的代码时,会看到这一点。我的目的是生成apk。


已解决

结果:我用 npm install 解决了我的问题。我想说很多个月后。

根据官方教程:https://facebook.github.io/react-native/blog/2017/03/13/introducing-create-react-native-app.html

如果你想在你的应用中使用expo,你必须按照下面的方式创建它

npm i -g create-react-native-app create-react-native-app my-project cd my-project npm start

这将启动 React Native 打包程序并打印二维码。在 Expo 应用程序中打开它以加载您的 JavaScript.

我看到你的代码有一些不需要的文件,比如 build.gradle 和 index.js,create-react-native-app[=25= 的结构] 创造出与众不同且更易于使用

如果使用 expo 的人看到这些错误消息,这是我的经验。

我不小心在我的项目中手动安装了 expo,版本是 29.0.0。

我用的是expo sdk 28.0.0版本,所以里面可能崩溃了。

我做了什么:

  1. 手动升级app.json的sdk版本到29.0.0.
  2. 为 react-native 将 sdk 版本更改为 29.0.0。

有完全相同的错误 - 新机器,新 npm,只安装了一个版本的 expo。

事实证明,expo 要求您将其构建为应用程序,然后才能将其正确发送到 expo 应用程序(至少在 Android 上)。最简单的方法是:

  • 将 "android" 部分添加到 app.json,内容为 "package": "uk.co.yourcompany.yourpackagename"(这是 android 包所必需的。它可能是完全垃圾,但应该遵循格式 - 反向域名)
  • 运行ning expo build:android 并按照说明注册 expo 的服务器并构建应用程序
  • 然后重新启动expo start

不确定这是否在任何地方都有记录,所以可能是新事物?

另一件事是将您的 node_modules 文件夹移开(或者删除它,由您决定)并重新 运行 npm install

expo-cli 更新到版本 3.0.6 后,我遇到了同样的错误。

通过查看我的 package.json,我注意到我计算机上安装的 expo-cli 版本与 package.json 不同。所以我把它改成了"expo-cli": "^3.0.6"和运行npm install || yarn,然后错误就消失了!

如果有人在升级 Expo 后遇到此错误,请尝试重新启动您的模拟器 - 这已为我修复。