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

React Native 0.61.5/0.63.3、Expo38/39安卓无法连接开发服务器求助

问题根因说明

adb shell curl请求开发服务器正常,证明设备与开发机的网络链路完全通畅,问题集中在应用内部配置、RN框架加载逻辑或系统权限管控层面,可按照以下步骤逐一排查解决:

排查解决步骤

1. 校验开发服务器地址配置

  • 原生RN项目:
    摇晃设备唤起React Native Dev Menu,进入Debug server host & port for device选项,确认填写的地址为「Mac开发机局域网IP:Metro服务端口」,默认端口为8081,自定义端口需替换为实际值。
  • Expo项目:
    确认启动Expo开发服务时未添加--localhost参数,该参数会强制应用仅通过localhost地址访问服务,真机设备无法识别该地址指向的开发机。

2. 核对应用权限配置

  • 除已配置的明文传输权限外,确认AndroidManifest.xml中已声明基础网络权限:
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
  • 检查定制ROM的权限管控:小米、华为、OPPO等品牌的安卓10定制ROM会默认静默拦截未上架测试应用的网络权限,进入系统设置-应用管理-当前测试应用-权限管理,确认「WLAN访问」「后台网络访问」权限已开启。

3. 验证端口映射有效性

  • 执行命令adb reverse --list确认端口映射规则存在,正常输出应为tcp:8081 tcp:8081(自定义端口替换对应值即可)。
  • 映射规则异常时可先执行adb reverse --remove-all清空所有规则,再重新执行映射命令adb reverse tcp:8081 tcp:8081。

4. 清理缓存重新构建

  • 执行以下命令清理全链路缓存后,重启Metro服务并重新安装应用到设备:
    cd 项目根目录
    rm -rf node_modules && npm install
    cd android && ./gradlew clean
    cd .. && npm start -- --reset-cache
    
  • 检查android/app/build.gradle中debug构建类型的bundleInDebug配置是否为false,若设置为true会导致应用直接加载本地离线bundle,不会向开发服务器发起请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:24:07