Android构建完成后Metro bundler自动断开,如何维持连接?
解决Metro Bundler构建后自动断开的问题
检查端口占用:Metro默认用8081端口,先排查是否被其他进程占用。Mac/Linux终端执行
lsof -i :8081,Windows执行netstat -ano | findstr :8081,找到进程ID后,Mac/Linux用kill -9 <PID>,Windows用taskkill /F /PID <PID>杀掉占用进程。修改Metro配置:在项目根目录的
metro.config.js里添加 keep-alive 配置,强制保持连接:
module.exports = { server: { port: 8081, enhanceMiddleware: (middleware) => { return (req, res, next) => { res.setHeader('Connection', 'keep-alive'); return middleware(req, res, next); }; }, }, };
关闭Android Studio Instant Run:打开Android Studio的Settings → Build, Execution, Deployment → Instant Run,取消所有相关勾选。这个功能容易和Metro热重载冲突,导致连接中断。
手动启动Metro:别让IDE自动启动Metro,先在终端执行
npx react-native start --reset-cache,保持窗口打开,再去Android Studio点击构建/运行,让Metro独立运行,避免被IDE流程中断。重置adb连接:终端执行
adb usb切换到USB调试模式,再执行adb kill-server && adb start-server重启adb服务,确保有线连接稳定。排查防火墙/杀毒软件:临时关闭防火墙或杀毒软件测试,或者把8081端口加入白名单,避免通信被拦截。
内容的提问来源于stack exchange,提问作者Muhammad Waqar
相关产品推荐
相关产品推荐

