ADB无规律自发反复重启导致真机/模拟器连接丢失问题求助
ADB无规律自发重启断连问题排查方案
按优先级从高到低操作,每步完成后可测试10-15分钟观察问题是否复现:
- 排查5037端口占用冲突
ADB服务默认绑定TCP 5037端口,一旦该端口被其他进程抢占、或监听进程被异常终止,就会触发ADB重启。操作步骤:- 完全关闭Android Studio、所有模拟器、所有打开的终端窗口
- 以管理员身份打开命令提示符,执行
netstat -ano | findstr :5037 - 如果命令返回结果,最后一列数字就是占用端口的进程PID,打开任务管理器-详细信息面板,匹配对应PID即可找到冲突程序。常见冲突程序包括:第三方手机助手、手游模拟器自带的ADB服务、部分本地代理工具、手机厂商PC端管理套件。
- 要么卸载/关闭冲突程序,要么新增系统环境变量
ANDROID_ADB_SERVER_PORT,赋值为一个未被占用的端口(比如5038),重启电脑后生效。
- 回退存在已知bug的Platform Tools版本
你当前使用的Android SDK Platform Tools 33.0.2是社区反馈的问题重灾区,大量开发者遇到过该版本下ADB随机崩溃重启的问题,不需要固守最新版。打开Android Studio的SDK Manager,找到Android SDK Platform-Tools,回退到33.0.1或32.0.0稳定版,回退完成后执行adb kill-server && adb start-server重启ADB服务即可。 - 排查多ADB版本冲突
电脑中如果存在多个不同版本的adb.exe程序,运行时会互相终止对方的服务,触发重启。最常见的就是第三方手游模拟器(雷电、夜神等)自带的旧版ADB,会和SDK里的新版ADB冲突。在命令提示符执行where adb,会列出所有系统能找到的adb.exe路径,仅保留Android SDK目录下的adb.exe对应路径,其他路径下的adb.exe要么删除,要么把对应目录从系统环境变量PATH中移除,保证全局仅调用一个版本的ADB。 - 排查安全软件拦截
第三方杀毒软件、Windows Defender有时会误判ADB进程行为,将其静默终止。可将Android SDK目录下的platform-tools文件夹加入安全软件的白名单,后续始终以管理员身份启动命令提示符/Android Studio,避免权限不足导致进程被系统回收。 - 抓取崩溃日志定位根因
如果以上操作都无法解决,可以抓取ADB运行日志定位具体错误:- 执行
adb kill-server终止现有ADB服务 - 在命令提示符执行
set ADB_TRACE=all开启全量运行日志 - 执行
adb nodaemon server让ADB在前台运行,不要关闭这个窗口 - 等ADB再次异常退出时,窗口中最后输出的日志就是崩溃前的错误信息,可根据错误提示针对性处理(比如内存不足、第三方软件DLL注入冲突等)。
- 执行
验证技巧:每次调整配置后,保持设备连接状态静置15分钟,间隔2分钟执行一次
adb devices,如果始终能看到设备在线、没有出现daemon not running的提示,说明问题已解决。
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

