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

Expo构建的独立Android APK需Metro Bundler才能连API,求排查

解决方案:独立APK需依赖Metro Bundler才能连接API的问题

1. 检查API地址配置

  • 绝对不要用本地IP/localhost作为API地址,替换成公网可访问的后端域名或服务器公网IP。
  • 若使用环境变量,确保构建生产APK时加载的是生产环境变量:
    • 比如在app.config.js中根据process.env.EXPO_PUBLIC_ENV切换地址;
    • 构建时用eas build --profile production(EAS Build)或确保expo build:android时注入了正确的生产环境变量。

2. 确认构建的是生产版本

  • 避免构建开发/预览版APK:
    • 用expo build:android时不要加--dev参数;
    • EAS Build需检查eas.json的production配置:
      {
        "build": {
          "production": {
            "developmentClient": false,
            "env": {
              "EXPO_PUBLIC_API_URL": "https://your-production-api.com"
            }
          }
        }
      }
      

3. 清除缓存后重新构建

  • 清除Expo本地缓存:expo r -c
  • EAS Build清除构建缓存:eas build --clean
  • 传统构建可删除.expo目录后重新执行构建命令。

4. 验证网络权限与跨域设置

  • 确保app.json中添加了网络权限:
    {
      "android": {
        "permissions": ["INTERNET"]
      }
    }
    
  • 若后端用HTTP,需在app.json中允许明文流量(生产环境建议改用HTTPS):
    {
      "android": {
        "usesCleartextTraffic": true
      }
    }
    
  • 后端需允许APK的请求来源跨域,或直接使用同域名/IP部署。

5. 调试定位具体错误

  • 用adb logcat查看APK网络日志,搜索关键词如IOException、OkHttp,定位连接失败的具体原因(DNS错误、超时、权限问题等)。
  • 在代码中添加日志输出当前API地址,确认是否正确加载了生产环境配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:15:43