启动Expo应用时报错EADDRINUSE: 地址:::19000已被占用如何解决?
Expo启动报错EADDRINUSE:19000解决方案
核心报错信息:
error listen EADDRINUSE: address already in use :::19000 Metro Bundler process exited with code 1 npm ERR! code ELIFECYCLE
该报错由Metro Bundler默认监听的19000端口被其他进程占用导致,可按以下方案解决:
方案1:杀死占用19000端口的进程
根据你使用的操作系统执行对应操作:
- Windows系统
- 打开命令提示符或PowerShell,执行命令查看占用19000端口的进程PID:
netstat -ano | findstr :19000 - 命令返回结果的最后一列数字即为对应PID,执行以下命令杀死进程(将
<PID>替换为你查到的PID):taskkill /PID <PID> /F - 重新执行
expo start启动项目即可。
- 打开命令提示符或PowerShell,执行命令查看占用19000端口的进程PID:
- Mac/Linux系统
- 打开终端,执行命令查看占用19000端口的进程PID:
lsof -i :19000 - 返回结果中PID列的数字即为进程ID,执行以下命令杀死进程:
kill -9 <PID> - 重新执行
expo start启动项目即可。
- 打开终端,执行命令查看占用19000端口的进程PID:
方案2:指定其他端口启动
如果不想终止占用19000端口的进程,可以在启动时手动指定端口,命令如下(可替换为任意未被占用的端口号):
expo start --port 19003
方案3:清理残留进程与缓存
如果是之前的Expo进程异常退出导致的端口占用,可先执行以下操作:
- 关闭所有已打开的Expo开发者工具页面、模拟器窗口
- 在任务管理器(Windows)或活动监视器(Mac)中结束残留的node.exe/Node.js进程
- 执行以下命令清理Expo缓存后重启:
expo start -c
如果以上方案都无效,可以尝试暂时关闭系统代理、VPN后再启动,避免网络工具占用相关端口。
内容的提问来源于stack exchange,提问作者Aman Dwivedi
相关产品推荐
相关产品推荐

