【发布时间】:2023-03-09 22:10:02
【问题描述】:
2022年的第一天~!学习移动应用程序开发令人头疼。设置起来不会这么难。我已经浪费了6个小时。请帮忙!
情况 我的开发环境通过托管在 Windows 10 上的 VMWare 在 Ubuntu 中运行。在这个环境中,我有:
- 在本地主机上运行的 Node/express 后端 API,在使用 Postman/浏览器测试时可以正常工作
- 通过 Expo 创建和运行的默认反应原生应用程序。我通过阅读 Expo/metro 提供的二维码(通过 Tunnel 提供服务)在我的 Android 手机上测试此应用
期望的行为:
- React Native 移动应用应该能够与后端 API 通信
错误:
Network Error
at node_modules/axios/lib/core/createError.js:15:17 in createError
at node_modules/axios/lib/adapters/xhr.js:114:22 in handleError
at node_modules/react-native/Libraries/Network/XMLHttpRequest.js:609:10 in setReadyState
at node_modules/react-native/Libraries/Network/XMLHttpRequest.js:396:6 in __didCompleteResponse
at node_modules/react-native/Libraries/vendor/emitter/_EventEmitter.js:135:10 in EventEmitter#emit
来自 React Native 的 Axios 发布请求(缩写)
axios.post('http://localhost:5000/user/login', some-data)
尝试的解决方案
- 将“localhost”替换为 10.0.2.2 和 127* 的变体
- 通过 Expos 连接(LAN 或本地而不是隧道)但无法连接(超时错误)
- 使用 Ubuntu ufw 防火墙设置(禁用、允许端口)
- 通过安装 Android Studio 来模拟全部忽略,但被告知我的设备不支持 SVM 或 at-x 硬件虚拟化,这导致我陷入另一个兔子洞
【问题讨论】:
标签: android node.js react-native expo mobile-development