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

Expo打包APK后无法连接本地服务器问题求助

解决方案:Expo打包APK后无法连接本地服务器
  • 检查本地服务器的网络监听配置
    Expo Go能正常访问是因为和开发机处于同一局域网,且开发环境下服务器通常允许局域网访问,但打包后的APK若遇到服务器仅绑定127.0.0.1(本地回环地址),手机就无法建立连接。

    • 将服务器的监听地址修改为0.0.0.0,允许所有外部IP访问
    • 确保手机与服务器处于同一Wi-Fi网络,若需跨网访问,给服务器配置公网访问规则(比如路由器端口映射)
  • 处理Android的明文HTTP限制
    Android 9及以上系统默认禁止明文HTTP请求,Expo Go为开发需求放宽了该限制,但正式打包的APK会严格遵循系统规则。

    • 若必须使用HTTP协议,在app.json的expo.android字段中添加配置:
      "android": {
        "usesCleartextTraffic": true,
        // 保留原有其他配置
      }
      
    • 长期解决方案建议给服务器配置HTTPS证书,比如使用Let's Encrypt的免费证书
  • 修正服务器地址的硬编码问题
    开发阶段写死的localhost或开发机固定IP,在打包后的APK中是无效的(localhost指向手机自身,而非开发机)。

    • 开发时可通过Constants.expoConfig?.hostUri自动获取开发机的局域网IP
    • 打包APK前,将服务器地址替换为公网域名/IP,或添加配置界面让用户手动输入服务器地址
  • 排查防火墙和端口拦截
    开发机的防火墙可能拦截了手机的访问请求,跨网访问时路由器未配置端口转发也会导致连接失败。

    • 临时关闭开发机的防火墙,或在防火墙上开放服务器使用的端口
    • 跨网访问时,在路由器中设置端口转发,将公网端口映射到开发机的内网端口
  • 确认打包时的环境变量配置
    开发时使用的服务器地址环境变量,可能未正确注入到打包后的APK中。

    • 检查app.config.js或app.json中的生产环境服务器地址配置
    • 打包时手动传递环境变量,例如:EXPO_PUBLIC_SERVER_URL=https://your-server.com expo build:android

内容的提问来源于stack exchange,提问作者Kenyer Ramírez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 07:57:37