React Native Expo打包APK后无法连接本地Node.js服务器求助
解决Expo打包APK后无法连接本地Node.js服务器的问题
你使用电脑的局域网IP(192.168.29.1)是正确的,打包后无法连接的原因出在其他配置环节,以下是针对性的解决步骤:
检查电脑防火墙设置
电脑的防火墙(Windows Defender、Mac防火墙或第三方防火墙)可能拦截了移动设备对Node服务器3050端口的请求。需要手动添加入站规则,允许TCP协议的3050端口接收局域网内的连接请求。确认Node服务器的绑定地址
确保你的Node.js服务器监听的是0.0.0.0而非localhost(127.0.0.1)。如果服务器只绑定localhost,仅本机能访问,局域网内的移动设备无法连接。修改服务器启动代码:app.listen(3050, '0.0.0.0', () => { console.log('服务器运行在端口3050,允许局域网访问'); });验证局域网连通性
确认电脑和移动设备确实在同一局域网:- 在电脑终端执行
ping 192.168.29.38,查看是否能收到手机的响应 - 在手机的网络工具(如Termux)执行
ping 192.168.29.1,查看是否能收到电脑的响应
如果ping不通,检查路由器是否开启了AP隔离功能,该功能会阻止局域网内设备互相访问,需要关闭。
- 在电脑终端执行
允许Android明文HTTP请求
Android 9及以上系统默认禁止非HTTPS的明文网络请求,打包后的APK会因此无法发起HTTP请求。在Expo的app.json中添加配置:{ "expo": { "android": { "usesCleartextTraffic": true, "networkSecurityConfig": { "domainConfigs": { "192.168.29.1:3050": { "cleartextTrafficPermitted": true } } } } } }配置完成后重新打包APK即可。
内容的提问来源于stack exchange,提问作者adithyan sivaraman
相关产品推荐
相关产品推荐

