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

Expo开发的React Native真机应用无法连接本地API求助

解决Expo React Native真实设备连接本地API的网络错误问题

以下是针对你遇到的问题的排查和解决步骤:

  • 确认设备与电脑在同一局域网
    确保你的Android设备和开发电脑连接的是同一个Wi-Fi网络,且两者IP处于同一网段(比如电脑是10.2.0.56,手机IP应为10.2.x.x)。如果电脑用有线网络,需确保有线网络和手机Wi-Fi在同一局域网内。

  • 修改本地API服务的绑定地址
    多数后端服务默认仅绑定127.0.0.1(仅本机可访问),需改为绑定0.0.0.0以允许局域网内其他设备访问:

    • Node.js/Express示例:
      app.listen(8000, '0.0.0.0', () => {
        console.log('服务运行在 http://0.0.0.0:8000');
      });
      
    • Django示例:
      python manage.py runserver 0.0.0.0:8000
      
    • Flask示例:
      app.run(host='0.0.0.0', port=8000)
      
  • 检查电脑防火墙设置
    Windows防火墙可能拦截局域网设备对8000端口的请求,可暂时关闭防火墙测试。若问题解决,需在防火墙中添加入站规则,允许8000端口的TCP连接。

  • 用手机浏览器测试API可达性
    在Android设备的浏览器中直接访问http://10.2.0.56:8000/:

    • 如果浏览器无法访问,说明问题出在网络或后端服务,与React Native无关;
    • 如果浏览器能正常返回数据,再排查RN端的配置。
  • 配置Android网络安全策略(Android 9+)
    Android 9及以上默认禁止明文HTTP请求,需添加网络安全配置允许指定IP的明文请求:

    1. 在android/app/src/main/res/xml目录下创建network_security_config.xml文件,内容如下:
      <?xml version="1.0" encoding="utf-8"?>
      <network-security-config>
        <domain-config cleartextTrafficPermitted="true">
          <domain includeSubdomains="true">10.2.0.56</domain>
        </domain-config>
      </network-security-config>
      
    2. 在AndroidManifest.xml的<application>标签中添加配置引用:
      <application
        ...
        android:networkSecurityConfig="@xml/network_security_config">
      
  • 尝试Expo的Tunnel模式
    改用expo start --tunnel命令启动项目,Tunnel模式通过Expo服务器转发请求,无需依赖局域网配置,适合快速验证API是否正常。

  • 验证axios请求配置
    确认请求的IP、端口与后端服务完全一致,同时检查后端服务是否正常运行(无崩溃、端口未被占用)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 01:57:37