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

React Native打包APK后Axios API请求失效问题求助

解决Expo EAS打包后Axios请求未发起的问题
  • 检查网络权限配置
    安卓生产包需要显式声明网络权限,打开app.json或app.config.js,确认安卓配置里包含:

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

    开发模式下Expo会自动添加权限,但EAS生产打包严格遵循配置,漏加的话设备会直接禁止网络请求。

  • 核对API地址是否正确
    开发时你可能用的是本地IP(比如http://192.168.x.x:3000),但打包后物理设备没法访问你的本地服务器。赶紧换成公网可访问的API地址,或者确保设备和服务器在同一局域网且IP没变动。
    建议用环境变量区分环境,避免硬编码:

    const BASE_URL = process.env.NODE_ENV === 'production' 
      ? 'https://你的公网API地址' 
      : 'http://192.168.1.100:3000';
    const axiosInstance = axios.create({ baseURL: BASE_URL });
    
  • 完善错误捕获逻辑
    别光盯着“请求没发起”,说不定是请求发了但被吞了异常。给所有Axios请求加上try/catch,或者全局拦截器里打印错误:

    axiosInstance.interceptors.response.use(
      res => res,
      err => {
        console.error('API请求出错:', err);
        return Promise.reject(err);
      }
    );
    

    用adb logcat *:S ReactNative:V ReactNativeJS:V过滤日志,能看到JS层的具体报错,比全量日志清晰多了。

  • 确认EAS打包的环境变量
    如果你用了Expo环境变量,确保EAS打包时能读到正确的配置。比如在.env.production里写好生产环境的API地址,然后在eas.json里指定生产配置:

    "build": {
      "production": {
        "env": {
          "NODE_ENV": "production",
          "API_URL": "https://你的公网API地址"
        }
      }
    }
    

    打包时执行eas build --platform android --profile production,别用错了profile。

  • 排查SSL证书问题
    如果API用的是HTTPS,证书必须是合法的公网证书。安卓7.0以上默认不认可自签名证书,开发时你可能关了安全校验,但生产打包后会严格验证。要是必须用自签名证书,得在安卓项目里手动添加证书信任配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 23:18:24