我使用 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
运行应用程序时,我遇到了同样的问题。
有什么想法为什么我可能会遇到这个问题吗?
听起来您可能已经运行了
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
吗?
不确定这是否相关,但对我来说有效的是卸载 expo-dev-client 包。