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

Android模拟器无法通过10.0.2.2连接localhost问题求助

Android模拟器连接Windows本地API的排查解决思路

1. 先确认本地API本身无问题

  • 用Windows本地浏览器访问 http://localhost:3000,验证API服务正常响应
  • 打开命令提示符执行 ipconfig,找到当前网卡的IPv4地址(如192.168.1.100),再用浏览器访问 http://[你的IPv4地址]:3000,确认API不是仅监听localhost,而是允许局域网访问

2. 排查模拟器网络配置

  • 确认模拟器使用NAT模式(10.0.2.2是该模式下映射主机localhost的固定地址)
  • 若NAT模式失效,切换到桥接模式,此时模拟器与主机同属一个局域网,直接用主机IPv4地址访问API(如http://192.168.1.100:3000)
  • 在模拟器自带浏览器中测试访问 http://10.0.2.2:3000 或主机IPv4地址,排除Retrofit代码层面的问题

3. 检查Windows防火墙与安全软件

  • 打开Windows Defender防火墙,确认已添加允许API程序(或3000端口)的入站规则
  • 临时关闭防火墙做测试,若能连接,说明是防火墙拦截,需手动添加允许3000端口入站的规则
  • 排查第三方安全软件(如360、腾讯电脑管家),确认未拦截3000端口的网络请求

4. 验证Retrofit与Android网络配置

  • 检查Retrofit的BaseUrl是否正确,无拼写错误(如端口、IP地址)
  • 确认AndroidManifest.xml中已添加网络权限:
    <uses-permission android:name="android.permission.INTERNET"/>
    
  • Android 9及以上版本需配置网络安全策略允许明文HTTP:
    1. 在res/xml目录下创建network_security_config.xml:
      <?xml version="1.0" encoding="utf-8"?>
      <network-security-config>
          <domain-config cleartextTrafficPermitted="true">
              <domain includeSubdomains="true">10.0.2.2</domain>
              <domain includeSubdomains="true">192.168.1.100</domain> <!-- 替换为主机IPv4 -->
          </domain-config>
      </network-security-config>
      
    2. 在AndroidManifest.xml的application标签中添加:
      android:networkSecurityConfig="@xml/network_security_config"
      

5. 模拟器重置与替代方案

  • 重置模拟器网络配置,或新建一个AVD模拟器测试,排除现有模拟器配置损坏
  • 长期替代方案:使用adb reverse端口映射,执行命令:
    adb reverse tcp:3000 tcp:3000
    
    之后模拟器内可直接通过 http://localhost:3000 访问主机的API

内容的提问来源于stack exchange,提问作者KIRAN K J

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 07:30:25