You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter应用模拟器登录正常 真机点击登录按钮无响应如何解决

问题根因

127.0.0.1是设备本地回环地址,仅指向当前运行应用的设备本身:

  • 模拟器运行时共享开发电脑的网络栈,访问127.0.0.1实际指向开发电脑,所以能正常请求跑在电脑上的后端服务
  • 实体手机运行时,127.0.0.1指向手机自身,你的手机没有部署后端服务,所以会抛出SocketException: OS Error: Connection refused, errno = 111的连接错误
排查&解决步骤
  • 确保开发电脑和实体手机连接到同一个局域网,无网段隔离
  • 查看开发电脑的局域网IP地址:
    • Windows:cmd运行ipconfig,查看当前连接的WLAN/以太网的IPv4地址,通常为192.168.x.x、10.x.x.x格式
    • Mac/Linux:终端运行ifconfig或ip addr,查看当前使用网卡的IPv4地址
  • 修改Flutter项目中的API配置,将所有接口的127.0.0.1替换为上述查到的开发电脑局域网IP,例如你的电脑IP为192.168.3.5,登录接口就改为http://192.168.3.5:8000/login
  • 调整后端服务监听配置:多数后端框架默认仅监听127.0.0.1,局域网设备无法访问,需要将监听地址改为0.0.0.0,允许所有网段请求。例如Flask/Django启动时添加参数--host=0.0.0.0,Node.js后端将监听host设置为0.0.0.0
  • 临时关闭开发电脑的系统防火墙,或者开放8000端口的入站规则,避免防火墙拦截手机的请求
  • 验证:先在手机自带浏览器输入修改后的接口地址,确认可以正常访问后端后,再重新打包Flutter应用安装到手机测试
额外注意事项
  • 该方案仅适用于本地调试,正式上线需要将接口地址替换为公网可访问的域名或公网IP
  • 安卓9及以上版本默认禁止HTTP明文请求,若使用HTTP接口需要在安卓项目中新增网络安全配置,放开明文请求限制,建议直接使用HTTPS协议
  • iOS系统默认也会拦截非HTTPS请求,需要在Info.plist中配置NSAppTransportSecurity规则,允许对应域名的HTTP请求

内容的提问来源于stack exchange,提问作者TimeToCode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 14:45:02