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

React Native无线调试模式下频繁与Metro断开连接求助

解决方案:React Native Metro热重载/代码同步失效问题

排查方向1:ADB连接稳定性

  • 优先使用USB有线连接替代无线调试:无线连接易受环境干扰丢包,Moto部分机型无线调试握手稳定性一般,USB直连可大幅降低连接中断概率。
  • 固定无线ADB端口:先USB连接设备,执行adb tcpip 5555,断开USB后用adb connect [设备IP]:5555连接,避免端口随机分配导致的连接漂移。
  • 延长ADB心跳超时:在Windows终端运行adb shell settings put global adb_heartbeat_timeout 60000(设置为60秒),防止系统主动切断ADB连接。

排查方向2:Metro配置优化

  • 修改metro.config.js,添加端口绑定与长连接配置:
const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');

const config = {};

module.exports = mergeConfig(getDefaultConfig(__dirname), {
  server: {
    port: 8081,
    enhanceMiddleware: (middleware) => {
      return (req, res, next) => {
        res.setHeader('Connection', 'keep-alive');
        res.setHeader('Keep-Alive', 'timeout=60');
        return middleware(req, res, next);
      };
    },
  },
});
  • 启动Metro时指定监听所有网络接口:运行npx react-native start --host 0.0.0.0,确保设备能持续连接到本地Metro服务。

排查方向3:系统与设备深层限制

  • 关闭Moto定制省电策略:在「设置-电池-电池优化」中将RN应用设为「不优化」,同时关闭「电池-智能省电」功能,避免厂商定制策略后台切断网络。
  • 禁用网络增强模式:在「设置-网络和互联网-高级-网络增强」中关闭该功能,防止设备自动切换网络导致连接中断。
  • 检查Windows防火墙:确保node.exe和adb.exe被允许通过所有网络类型,避免防火墙拦截Metro通信端口。

临时应急方案

  • 启用手动刷新模式:在应用开发者菜单(摇晃设备或按Ctrl+M)中关闭「自动刷新」,修改代码后手动点击「Reload」。
  • 清理Metro缓存:运行npx react-native start --reset-cache,清除旧缓存避免同步冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 22:04:56