Expo React Native应用运行报错:同网络设备无法连接且无隧道选项求解决
解决Expo React Native网络连接超时(socketException)问题
针对你遇到的java.net.socketException: failed to connect to /1XX.XXX.X.11 (port 8081) from /1XX.XXX.X.81 (port 58572) after 10000 ms错误,以下是针对性的排查和解决步骤:
1. 排查防火墙/安全软件拦截
- 临时关闭电脑防火墙(Windows Defender、第三方杀毒软件等),重试连接。若成功,说明防火墙阻止了8081端口的入站请求,需手动添加规则:允许
node.exe或Expo进程通过8081端口接收连接,或直接开放8081端口的TCP入站权限。
2. 确认Expo服务的IP与端口状态
- 启动项目时,核对终端输出的局域网IP,确保手机访问的是该IP(而非127.0.0.1)。若终端IP与错误日志中的1XX.XXX.X.11不一致,手动指定IP启动:
或直接指定电脑局域网IP:expo start --host 0.0.0.0expo start --host 1XX.XXX.X.11 - 检查8081端口是否被占用:
Windows:
macOS/Linux:netstat -ano | findstr :8081
若端口被占用,杀掉对应进程后重启,或换端口启动:lsof -i :8081expo start --port 8082
3. 调整Expo网络启动模式
- 强制使用LAN模式启动(因无tunneling选项):
expo start --lan - 检查
app.json/app.config.js的Expo配置,确保无网络访问限制:{ "expo": { "name": "YourApp", "slug": "your-app", "android": { "package": "com.yourapp" }, "ios": { "bundleIdentifier": "com.yourapp" } } }
4. 环境兼容性调整
- Java 20与部分React Native/Expo工具存在兼容性问题,降级至Java 11或17(官方推荐LTS版本)后重试。
- 清除Expo与npm缓存:
expo r -c npm cache clean --force
5. 手机端额外检查
- 关闭手机的VPN、代理工具,避免干扰局域网连接。
- 在手机浏览器中手动访问
http://1XX.XXX.X.11:8081,若无法打开则确认网络层面不通;若能打开,重新扫描Expo二维码尝试连接。
内容的提问来源于stack exchange,提问作者Kathiresan. N
相关产品推荐
相关产品推荐

