Expo执行expo init创建React Native项目报SocketException错误咨询
java.net.SocketException: Connection reset 报错核心含义 该报错属于调试链路的网络层异常,并非应用业务代码存在逻辑错误,也不是expo init生成的空白模板自带缺陷。本质是手机端的Expo Go应用与电脑端运行的Expo本地开发服务器之间的TCP连接被强制中断,手机无法正常拉取服务器推送的JS bundle、静态资源文件,最终导致应用启动直接崩溃。
分步排查解决方法
- 校验网络环境一致性:确认运行Expo服务的电脑、安装Expo Go的手机连接同一局域网Wi-Fi,断开电脑或手机端运行的全局代理、公司内网VPN,这类流量转发工具会拦截局域网内的设备直连请求,直接触发连接重置
- 切换启动模式绕过局域网限制:默认LAN模式连接失败时,可运行
npx expo start --tunnel以隧道模式启动服务,避开路由器AP隔离、局域网设备互相不可见的限制;若隧道模式访问速度过慢,也可运行npx expo start --lan后,手动在Expo Go应用地址栏输入电脑的局域网IP+Expo默认端口(格式:http://[电脑局域网IP]:19000),不直接使用启动页生成的二维码扫码 - 放开本地端口权限:检查电脑系统防火墙、第三方安全软件的网络拦截规则,给Node.js、Expo CLI进程放开19000、19001、19002这几个Expo默认调试端口的本地网络访问权限,端口被拦截时外部请求会被系统直接重置
- 对齐版本兼容性:先卸载全局安装的旧版Expo CLI,执行
npm uninstall -g expo-cli后,安装和当前项目SDK版本匹配的新版Expo CLI;同时将手机端的Expo Go应用更新到应用商店的最新正式版,避免新旧版本通信协议不匹配导致的握手中断 - 排除偶发异常:以上操作后仍报错时,依次重启电脑端的Expo服务、手机端Wi-Fi连接、家用路由器,清除Expo Go应用的本地缓存后重新尝试调试
内容的提问来源于stack exchange,提问作者Tempuslight
相关产品推荐
相关产品推荐

