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

Android模拟器应用无法连接本地Docker Java服务的问题

问题解决:Android模拟器无法连接Docker中的Java服务

核心原因

Android Studio模拟器中的localhost/127.0.0.1指向模拟器自身的环回地址,而非运行Docker的宿主机,因此直接连接localhost:1234会访问模拟器内部的1234端口,自然出现连接拒绝错误。

解决方案

1. 使用模拟器专属宿主机地址

对于Android Studio自带的模拟器,Google提供了专属地址10.0.2.2,用来映射到宿主机的localhost。修改Android客户端的连接地址为:

// 替换原有的 localhost/127.0.0.1
String serverUrl = "http://10.0.2.2:1234";

2. 使用宿主机局域网IP

如果模拟器和宿主机在同一局域网,也可以直接使用宿主机的真实局域网IP(比如192.168.1.100),这种方式在真机测试时也适用。

  • 查看宿主机局域网IP:
    • Windows:执行ipconfig,找到局域网适配器的IPv4地址
    • Linux/macOS:执行ifconfig或ip addr

3. 确认Java服务端绑定地址

确保Java服务端绑定的是0.0.0.0(允许所有网卡访问),而非仅127.0.0.1(仅容器内部访问)。示例代码:

ServerSocket serverSocket = new ServerSocket(1234, 50, InetAddress.getByName("0.0.0.0"));

(你当前Docker端口映射正常且浏览器能访问,说明这一步大概率已经正确配置)

额外说明

  • 你提到ping容器超时是正常现象:Docker默认禁用了容器的ICMP响应,不影响TCP端口的通信
  • 直接部署树莓派能正常连接,是因为此时客户端和服务端在同一局域网,使用的是树莓派的真实IP,不存在环回地址混淆的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 21:57:01