我正在遵循本教程:
https://blog.expo.io/building-a-react-native-app-using-expo-and-typescript-part-1-a81b6970bb82
yarn global add create-react-native-app
create-react-native-app my-app-name
cd my-app-name
yarn start
我与我的手机(安卓(在同一个网络上。没有VPN。我位于应用程序的根文件夹中。它说Loading dependency graph, done.
所以我知道它正在运行。
防火墙也因此而关闭,这不是超时错误。
当我扫描二维码时:
Something went wrong. Could not load exp://10.0.0.21:19000.
我的问题可能是什么?
编辑
新错误:Uncaught Error: java.net.ConnectException: Failed to connect to /10.0.0.21.19000
尝试在 chrome 中打开调试器,然后选择"tunnel
"(如果你的设备和开发电脑未连接到同一服务器(。
尝试手动输入 URL选项
- 首先确保您在同一个wifi上(计算机||笔记本电脑和移动设备(
- 第二个打开cmd并运行命令ipconfig,您将获得IPv4地址复制它
- 转到您的世博会应用程序,点击手动输入网址
- 输入exp://your_IPv4_Address:19000( 示例 -- exp://192.168.1.38:19000 (
- 立即连接 - 它应该可以工作
我在和博览会更新后遇到了这个问题。而不是运行
npm/yarn start
(执行expo start --dev-client
(
尝试
npm run run
(执行expo start
(
运行命令
expo start --tunnel
就我而言,我使用了隧道,并且 sdk 版本存在问题 - 我有 39.0.0,我应该只使用 36、37 或 38 - 这是我从 expo 收到的消息,所以我所做的只是进入app.json文件,并在 expo 中添加以下行(或者如果它已经存在,则只需更改它(:
"sdkVersion": "38.0.0"
它应该看起来像:
"expo": {
"name": "DoneWithIt",
"slug": "DoneWithIt",
"sdkVersion": "38.0.0",
"version": "1.0.0",
....
....
}
在依赖项中的package.json文件中,将"expo"和"react-native"中的版本更改为 38.0.0
:"dependencies": {
"expo": "~38.0.0",
"expo-status-bar": "~1.0.2",
"react": "16.13.1",
"react-dom": "16.13.1",
"react-native": "https://github.com/expo/react-native/archive/sdk-
38.0.0.tar.gz",
"react-native-web": "~0.13.12"
}
然后运行:
cd yourAppName
npm start
它将加载到您的手机上。 您可以从这里观看: https://www.youtube.com/watch?v=eS8VULijAZ4
在此视频中,他使用 32.0.0,因此请注意更新版本(就我而言,38.0.0 适用于 09/2020(
只需从应用程序中删除node_modules
文件夹,然后运行npm install
以获取依赖项。
现在运行expo start
或npm start
,二维码现在将加载。
在节点 v12.18 上。在 package.json 降级 expo 和 react-native 连接器中。38 个工作而不是 40 个。
"expo": "~38.0.0",
"react-native": "https://github.com/expo/react-native/archive/sdk-38.0.0.tar.gz",
然后删除node_modules并重新安装它们
rm -rf node_modules
npm install
然后再次运行:
npm start
QR这次应该可以工作
如果有人仍在寻找解决方案,只需暂时关闭防火墙即可。就我而言,我使用的是 Windows 11,迈克菲阻止了连接。
这就是对我有用的。 我只是按照夏尔马所说的做了@Nupur,但由于世博会 cli 似乎现在才与 npx 远程合作,所以我npx expo start --tunnel
运行了命令。 这促使我安装 expo/ngrok,这是一个隧道服务器,所以我接受了。再次运行该应用程序后,我能够扫描二维码并将该应用程序加载到我的 Android 设备上。