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

Expo React Native安卓设备无法通过http连接本地API求助

安卓真机通过Expo连接本地HTTP API的解决方案

安卓真机完全可以通过HTTP连接本地API,你遇到的问题是配置或网络环境导致的,以下是针对性的排查和解决步骤:

1. 确保设备与电脑处于同一Wi-Fi网络

  • 手机必须和运行本地API的电脑连接同一个局域网Wi-Fi,不能使用手机移动数据。
  • 确认电脑的局域网IP(比如192.168.1.105),手机端API请求地址必须使用这个IP,而非仅模拟器有效的10.0.2.2。

2. 检查电脑防火墙设置

  • 电脑防火墙可能拦截了本地API的端口请求,需要将API使用的PORT_NUMBER添加到防火墙允许列表,或临时关闭防火墙测试(测试完成后重新开启)。

3. 确认usesCleartextTraffic配置生效

  • 在app.json中正确配置expo-build-properties插件,确保开启明文流量允许,配置示例:
{
  "expo": {
    "plugins": [
      [
        "expo-build-properties",
        {
          "android": {
            "usesCleartextTraffic": true
          }
        }
      ]
    ]
  }
}
  • 配置完成后,重启Expo开发服务,并重新扫码安装到安卓设备。

4. 配置安卓网络安全规则(针对Android 9+)

  • 若上述配置仍无效,可添加网络安全配置文件,明确允许本地IP的明文流量:
    1. 创建文件android/app/src/main/res/xml/network_security_config.xml(目录不存在需手动创建),内容如下:
    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <domain-config cleartextTrafficPermitted="true">
            <domain includeSubdomains="true">192.168.x.x</domain> <!-- 替换为你的电脑局域网IP -->
        </domain-config>
    </network-security-config>
    
    1. 在app.json中关联该配置:
    {
      "expo": {
        "android": {
          "networkSecurityConfig": "./android/app/src/main/res/xml/network_security_config.xml"
        }
      }
    }
    

5. 确保本地API绑定正确的IP

  • 本地API服务不能仅绑定127.0.0.1(仅本地可访问),需绑定0.0.0.0或电脑的局域网IP,这样同一局域网的设备才能访问。
  • 以Node.js为例,启动服务时需指定监听地址:
    app.listen(PORT_NUMBER, '0.0.0.0', () => {
      console.log(`API running on http://0.0.0.0:${PORT_NUMBER}`);
    });
    

6. 验证API的可访问性

  • 在安卓设备的浏览器中直接输入http://192.168.x.x:PORT_NUMBER(替换为你的IP和端口):
    • 如果浏览器无法访问:问题出在网络或API服务本身,需排查电脑防火墙、API绑定地址、端口是否占用。
    • 如果浏览器可以访问:检查App中的请求代码是否存在拼写错误(如端口号、路径错误)。

关于你的疑问

安卓设备并非无法通过HTTP连接本地API,只是从Android 9(API 28)开始默认禁止明文流量,需要通过上述配置开启允许;iOS设备默认允许局域网内的HTTP请求,因此你的队友无问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 17:04:56