Volley突发NoConnectionError:无法连接本地Flask服务器求助
解决Volley无法连接本地Flask服务器的问题
核心问题
当前抛出的错误:
com.android.volley.NoConnectionError: java.net.ConnectException: Failed to connect to /10.0.2.2:5005
已知背景:
- Flask服务器在PC浏览器可正常访问
- 已开启Cleartext支持和网络权限
- PC防火墙已关闭
- 此前可正常运行的项目备份也无法连接,仅执行过clean build操作
排查与修复步骤
1. 修正URL协议错误
你的代码中URL使用了https://10.0.2.2:5005/list,但本地Flask默认启动的是HTTP服务,并非HTTPS。HTTPS协议会触发SSL握手失败,这是最可能的直接原因。
修改URL为:
String url = "http://10.0.2.2:5005/list";
2. 确认Flask服务器绑定地址
Flask默认绑定127.0.0.1,仅允许PC本地访问,模拟器无法连接。需将服务器绑定到0.0.0.0,允许所有网络访问:
启动代码修改为:
if __name__ == '__main__': app.run(host='0.0.0.0', port=5005, debug=True)
或使用命令行启动:flask run --host=0.0.0.0 --port=5005
3. 验证模拟器网络通路
- 在模拟器内置浏览器中访问
http://10.0.2.2:5005/list,若无法加载,说明模拟器与PC的网络连接存在问题。 - 尝试冷启动模拟器:通过Android Studio的AVD管理器,选择对应模拟器点击
Cold Boot Now,清除模拟器网络缓存。
4. 检查Android Studio代理设置
Android Studio的代理配置可能干扰模拟器网络请求:
- 打开
File > Settings > Appearance & Behavior > System Settings > HTTP Proxy,确认设置为No proxy,随后重启Android Studio和模拟器。
5. 彻底清理项目缓存
执行更彻底的重建操作:
- 点击
Build > Clean Project - 再执行
Build > Rebuild Project - 同时在模拟器中清除应用数据:长按应用图标 → 应用信息 → 存储 → 清除数据
6. 替换为PC局域网IP
若10.0.2.2(模拟器映射PC回环地址)仍无法连接,改用PC的实际局域网IP:
- Windows执行
ipconfig、Mac/Linux执行ifconfig,获取局域网IP(如192.168.1.100) - 修改URL为
http://192.168.1.100:5005/list,确保Flask已绑定0.0.0.0
内容的提问来源于stack exchange,提问作者Brett Rhines
相关产品推荐
相关产品推荐

