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

Expo安卓USB调试时无法连接本地localhost API该如何解决

问题根本原因

安卓设备上请求127.0.0.1或localhost时,指向的是安卓设备自身的本地回环地址,而非运行API服务的开发电脑。网页模式运行在电脑浏览器中,所以可以正常访问本地服务;USB调试模式下应用运行在安卓设备的独立环境,因此无法连接到电脑的本地服务。

解决方案

方案一:使用电脑局域网IP访问(配置简单,推荐使用)

  • 第一步:获取开发电脑的局域网IPv4地址
    • Windows系统:打开cmd执行ipconfig,找到当前使用的WiFi/有线网卡对应的IPv4地址,格式一般为192.168.x.x或10.x.x.x
    • macOS/Linux系统:终端执行ifconfig或ip addr,查找当前联网网卡对应的IPv4地址
  • 第二步:修改代码中的API地址,将127.0.0.1替换为上一步查到的电脑IP,示例:
// 替换为你自己的电脑IP
const API_ENDPOINT = "http://192.168.3.22:5001/api/Medicines/";

注意:如果你的本地API使用自签名HTTPS证书,安卓默认会拦截不信任的证书请求,开发阶段建议先改用HTTP协议测试,连通后再配置安卓网络安全规则信任自定义证书。

  • 第三步:修改Expo启动命令,移除--localhost参数,改为:
expo start --android
  • 第四步:确认Windows防火墙已放行5001端口,或临时关闭防火墙测试连通性。

方案二:adb反向端口映射(无需修改原有API地址)

如果不想改动代码中的localhost地址,可以通过adb反向代理将安卓设备的端口映射到电脑对应端口:

  • 确保安卓设备已开启USB调试,且和电脑正常连接
  • 终端执行如下命令,将设备的5001端口映射到电脑的5001端口:
adb reverse tcp:5001 tcp:5001
  • 此时代码保留127.0.0.1:5001的地址即可正常访问电脑本地API服务
    注意:每次重新插拔USB设备后,都需要重新执行adb reverse命令才会生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:15:04