如何修复Windows上React Native Expo安卓模拟器的连接失败错误?
解决Windows上Android Studio模拟器通过Expo Go连接超时的问题
错误信息
Uncaught Error: java.net.SocketTimeoutException: failed to connect to /192.168.0.96 (port 19000) from /10.0.2.16 (port42646) after 10000ms
问题原因
安卓模拟器默认使用的10.0.2.x网段属于虚拟机内部网络,无法直接访问主机的局域网IP(比如你的192.168.0.96),导致Expo Go无法连接本地的Metro开发服务器。
解决方案
用模拟器专属回环地址访问主机
安卓模拟器提供了固定IP10.0.2.2,专门映射到主机的127.0.0.1:- 启动项目时,让Metro允许所有IP访问:
npx expo start --host 0.0.0.0 - 在模拟器的Expo Go里,手动输入连接地址
exp://10.0.2.2:19000即可。
- 启动项目时,让Metro允许所有IP访问:
切换模拟器网络为桥接模式
让模拟器直接接入局域网,获取和主机同网段的IP:- 打开Android Studio的AVD Manager,找到目标模拟器,点击编辑图标(铅笔样式)。
- 进入虚拟设备配置页面,点击「Show Advanced Settings」展开高级选项。
- 在「Network」区域,把「Network Mode」从默认的
Automatic改成Bridge: <你的主机网卡名称>(比如当前连接的Wi-Fi或以太网网卡)。 - 重启模拟器,之后就能用Expo默认生成的局域网地址正常连接了。
检查Windows防火墙规则
确保防火墙允许Metro服务器的端口(19000、19001)入站:- 打开「Windows Defender防火墙」→「高级设置」→「入站规则」。
- 新建规则,选择「端口」,下一步后输入
19000,19001。 - 选择「允许连接」,勾选所有网络类型,命名规则后完成配置。
内容的提问来源于stack exchange,提问作者Paul Yeboah Asamoah
相关产品推荐
相关产品推荐

