Skip to content

一、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 版本:

  1. 在任务管理器中结束所有正在运行的 adb.exe 和 nox_adb.exe 进程;
  2. 打开 Android SDK 目录下的 platform-tools,复制 adb.exe;
  3. 进入夜神模拟器安装目录(通常在 Nox/bin),重命名备份原有的 nox_adb.exe;
  4. 将复制的 adb.exe 粘贴到 Nox/bin 并改名为 nox_adb.exe;
  5. 重启模拟器再次执行 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 等),可查看夜神多开配置确认具体端口号。

测试开发工程师 · 专注自动化与系统架构 | 邮箱: hansblog@atumsoul.win