React Native “Expo SDK 需要 Expo 才能运行......此代码未在 Expo 上运行。”
Posted
技术标签:
【中文标题】React Native “Expo SDK 需要 Expo 才能运行......此代码未在 Expo 上运行。”【英文标题】:React Native "The expo SDK requires Expo to run. .... this code is not running on Expo." 【发布时间】:2018-06-27 20:31:26 【问题描述】:我正在使用 React Native 进行编码。当我第一次创建 react-native 应用程序以检查运行时,我没有看到这一点。当我实现我的代码时,请看到。我的目的是生成apk。
app.json build.gradle index.js (index.android.json) App package.json已解决
结果:我用 npm install 解决了我的问题。我想说几个月后。
【问题讨论】:
【参考方案1】:如果有人在升级 Expo 后遇到此错误,请尝试重新启动您的模拟器 - 这已为我解决了问题。
【讨论】:
【参考方案2】:如果有人使用 expo 看到这些错误消息,这是我的经验。
我不小心在我的项目中手动安装了 expo,它是 29.0.0 版本。
我使用的是 28.0.0 版本的 expo sdk,所以它可能已经崩溃了。
我做了什么:
-
手动将 app.json 的 sdkVersion 升级到 29.0.0。
将 react-native 的 sdk 版本更改为 29.0.0。
【讨论】:
正好遇到了这个问题:我在 package.json 中升级到了 29.0.0,但不是 app.json。 (app.json 真的应该从 package.json 中读取...)【参考方案3】:有完全相同的错误 - 新机器,新 npm,只安装了一个版本的 expo。
事实证明,expo 要求您将其构建为应用程序,然后才能将其正确发送到 expo 应用程序(至少在 Android 上)。最简单的方法是:
在 app.json 中添加一个“android”部分,内容为"package": "uk.co.yourcompany.yourpackagename"
(这是 android 软件包所必需的。它可能完全是垃圾,但应遵循该格式 - 反向域名)
运行 expo build:android
并按照说明注册 expo 的服务器并构建应用程序
然后重启expo start
不确定这是否记录在任何地方,所以可能是新事物?
要尝试的另一件事是将您的 node_modules
文件夹移开(或者可能删除它,取决于您)并重新运行 npm install
【讨论】:
很奇怪,但经历这件事也为我解决了问题【参考方案4】:根据官方教程: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 打包器并打印 QR 码。在 Expo 应用程序中打开它以加载您的 javascript。
我看到您的代码包含不必要的文件,例如 build.gradle 和 index.js,create-react-native-app 创建的结构不同且更易于使用
【讨论】:
感谢您的反馈,但我不想使用 expo。我正在尝试使用 Android Studio 生成 apk。我搜索但我没有找到我的问题的结果。你有什么推荐的标签、概念、类型来学习吗?我尝试反应原生生成官方文档的apk。【参考方案5】:将expo-cli
更新到版本3.0.6
后,我遇到了同样的错误。
通过查看我的package.json
,我注意到我计算机上安装的expo-cli
版本与package.json
不同。所以我把它改成"expo-cli": "^3.0.6"
然后跑npm install || yarn
,然后错误就消失了!
【讨论】:
以上是关于React Native “Expo SDK 需要 Expo 才能运行......此代码未在 Expo 上运行。”的主要内容,如果未能解决你的问题,请参考以下文章
Expo SDK 需要 Expo 才能运行。似乎本机 Expo 模块不可用,并且此代码未在 Expo 上运行。我想生成apk
react-native init 指定 react 版本和 react-native 版本
添加 React-Native-Camera 和 React-Native-Push-Notification 后无法构建 React Native
react native 增加react-native-camera