一、adb server version mismatch 冲突排查
使用夜神模拟器(Nox)进行移动端 UI 自动化测试时,运行 adb devices 经常遇到以下不断重启杀进程的死循环报错:
text
List of devices attached
adb server version (31) doesn't match this client (39); killing...
* daemon started successfully *根因分析
本地 Android SDK 的 platform-tools/adb.exe 与夜神安装目录自带的 nox_adb.exe 属于两个不同的大版本。每次执行命令,两边都在争抢 5037 端口的 Server 控制权,导致不断互相 Kill 重启。
解决步骤:统一工具链版本
让模拟器统一使用本机 SDK 的 ADB 版本:
- 在任务管理器中结束所有正在运行的
adb.exe和nox_adb.exe进程; - 打开 Android SDK 目录下的
platform-tools,复制adb.exe; - 进入夜神模拟器安装目录(通常在
Nox/bin),重命名备份原有的nox_adb.exe; - 将复制的
adb.exe粘贴到Nox/bin并改名为nox_adb.exe; - 重启模拟器再次执行
adb devices,版本握手即告恢复。
二、解决设备列表为空(List of devices attached 无输出)
版本对齐后,有时仍可能出现列表为空:
text
List of devices attached此时 ADB 服务已就绪,但尚未与模拟器的虚拟端口建立握手连接。
手动执行端口连接命令:
bash
adb connect 127.0.0.1:62001
adb devices连接成功后会输出设备标识:
text
List of devices attached
127.0.0.1:62001 device注:如果使用了夜神多开器,第一个实例通常监听 62001,后续多开实例按规律分配端口(如 62025、62026 等),可查看夜神多开配置确认具体端口号。