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

React Native Expo打包APK后网络请求失败问题求助

问题分析与解决方案

你的问题核心是Android 9(API 28)及以上版本默认禁止HTTP明文网络请求,Expo开发环境因为自带调试豁免机制所以能正常请求,但打包成正式APK后会触发系统的安全限制,导致HTTP请求失败。

下面是具体解决步骤:


1. 配置Android网络安全规则(关键)

在Expo项目的app.json(或app.config.js)中添加Android网络安全配置,允许你的API域名/IP的HTTP请求:

{
  "expo": {
    // ... 其他原有配置
    "android": {
      // ... 其他Android配置
      "networkSecurityConfig": {
        "domainConfigs": [
          {
            "domain": "你的API域名或IP地址",
            "cleartextPermitted": true
          }
        ]
      }
    }
  }
}

如果需要临时允许所有HTTP请求(不推荐生产环境使用),可以用更宽松的配置:

"networkSecurityConfig": {
  "cleartextTrafficPermitted": true
}

配置完成后,重新生成AAB再转APK即可。


2. 确认网络权限

确保你的项目已经声明了网络权限,Expo默认会添加,但可以在app.json里确认:

{
  "expo": {
    "android": {
      "permissions": ["INTERNET"]
    }
  }
}

3. 额外排查点

  • 确认打包后的APK使用的API地址正确:检查API_ENDPOINTS.LOGIN在打包环境中是否指向正确的HTTP地址,避免开发环境和生产环境的地址不一致。
  • 测试设备网络:确保设备能正常访问该API的HTTP地址(比如用浏览器打开API链接确认),排除网络本身的问题。

你的登录代码本身没有问题,核心是Android系统对HTTP明文请求的限制导致打包后请求失败,按照上面的配置修改后就能解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 08:22:20