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

Expo@49 Android端网络请求失败,iOS端API调用正常求助

Expo 49 Android 全量网络请求失败排查与解决

1. 检查 Android 网络安全配置

Expo 49 对 Android 11+ 的网络安全策略做了更新,即使是 HTTPS 请求也可能因配置限制失败:

  • 打开app.json或app.config.js,确认android.networkSecurityConfig配置,添加目标域名的信任规则:
    "android": {
      "networkSecurityConfig": {
        "domainConfigs": [
          {
            "domain": "api.mydomain.com",
            "cleartextTrafficPermitted": false
          },
          {
            "domain": "2factor.in",
            "cleartextTrafficPermitted": false
          }
        ]
      }
    }
    
  • 若使用自签名证书,需在配置中额外添加证书信任规则。

2. 验证 HTTP 客户端兼容性

Expo 49 升级后,部分旧版 HTTP 客户端库可能出现兼容性问题:

  • 若使用原生fetch,检查请求头是否包含 Android 不支持的字段,简化请求头后重试。
  • 若使用axios,升级到最新稳定版,旧版本可能与 Expo 49 的 Android 环境冲突。测试基础请求示例:
    try {
      const res = await fetch('https://api.mydomain.com/health');
      const data = await res.json();
      console.log('请求成功:', data);
    } catch (err) {
      console.error('请求失败详情:', err.message, err.stack);
    }
    

3. 确认 Android 权限配置

确保app.json中已声明必要的网络权限:

"android": {
  "permissions": ["INTERNET", "ACCESS_NETWORK_STATE"]
}

Expo 49 默认会包含这些权限,但手动确认可排除权限缺失问题。

4. 排除代理/VPN干扰

  • 模拟器或真机若开启代理,可能导致请求被拦截,关闭代理后重试。
  • 部分 VPN 会修改网络路由,尝试断开 VPN 测试请求是否恢复正常。

5. 临时降级 Expo 版本

若以上方案均无效,可临时降级到之前正常的 Expo 版本(如 48),确认是否为 Expo 49 的特定问题:

expo upgrade 48

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 12:42:32