解决‘* daemon not running’和adb连接失败的完整排错指南(含5037端口冲突详解)
当你正在调试Android设备,突然遇到* daemon not running的提示,或者adb命令卡住无响应,这通常意味着adb服务出现了问题。这种情况在持续集成环境、多设备测试平台或个人开发机上都很常见,尤其是当多个工具或进程试图同时使用adb时。本文将带你深入排查这些问题,从现象识别到根因定位,再到解决方案验证,构建一个完整的排错框架。
1. 理解adb服务架构与常见故障模式
Android Debug Bridge(adb)由三个主要组件构成:客户端、服务端和守护进程。当你在命令行输入adb devices时,客户端会尝试与服务端通信,而服务端则通过5037端口与设备上的adbd守护进程交互。
常见故障模式包括:
- 端口冲突:5037端口被其他程序(如手机助手、模拟器或旧版adb)占用
- 服务异常:adb服务崩溃或未能正确启动
- 权限问题:当前用户无权访问adb相关资源
- 驱动问题:设备驱动未正确安装或配置
- 网络限制:防火墙或安全软件阻止了adb通信
提示:在开始排错前,建议先执行
adb kill-server && adb start-server尝试重启服务,这能解决约60%的临时性问题。
2. 系统化排查5037端口冲突问题
端口冲突是导致* daemon not running的最常见原因。以下是详细的排查步骤:
2.1 检测端口占用情况
在Windows上,使用以下命令检查5037端口占用:

&spm=1001.2101.3001.5002&articleId=160612649&d=1&t=3&u=a26a57d0a5124e9b979292a73256afeb)
1万+

被折叠的 条评论
为什么被折叠?



