为什么我的 Expo 应用程序在 Expo Go 中运行,但不是作为开发版本运行?

问题描述 投票:0回答:2

我使用 EAS 创建了 Expo 应用程序的开发版本。以前,我会通过运行

npx expo start
并扫描 Metro Bundler 二维码来打开 Expo Go 中的应用程序。

现在,当我尝试做同样的事情时,Expo Go 会询问我是否要在 Expo Go 中打开该项目还是作为“开发构建”。它在 Expo Go 中运行良好,但当我尝试打开开发版本时立即崩溃。错误如下:

null 不是对象(正在评估 '_ReanimatedModule.default.createNode')

此错误与我之前在开发过程中遇到的错误非常相似,我通过降级到 React Native 版本 0.69.6 解决了该错误。我还遇到了第二个错误,显示“'main'尚未注册”,但我怀疑这是第一个错误的下游。

当我尝试使用

npx expo start --dev-client
运行应用程序时,我遇到了同样的问题。

有什么想法为什么我可能会遇到这个问题吗?

react-native expo metro-bundler eas
2个回答
5
投票

听起来您可能已经运行了

expo prebuild
(https://docs.expo.dev/workflow/prebuild/),它从
"main": "node_modules/expo/AppEntry.js",
中删除了
app.json
。尝试创建一个新的博览会应用程序并查看它的
app.json
文件。

当您运行

expo prebuild
时,它会更改您的项目的一些内容(请参阅预构建文档中的“副作用”)。

实际上我现在也在解决一些问题。我以为我必须运行预构建,但事实证明我不必这样做。自从我运行它以来,我的应用程序将不会通过开发客户端方式加载。不过,我可以切换回

npx expo start
(不是
npx expo start --dev-client
,请参阅
scripts
app.json
部分,因为运行预构建时也会更改)。

如果您将

main
内容重新添加到
app.json
后能够加载您的应用程序,请告诉我。

Ps,你是偶然使用

react-native-google-mobile-ads
吗?


0
投票

不确定这是否相关,但对我来说有效的是卸载 expo-dev-client 包。

© www.soinside.com 2019 - 2024. All rights reserved.