adb server is out of date. killing... ADB server didn't ACK * failed to start daemon *……

问题

使用 adb 命令的时候报错如下:

1 adb server is out of date.  killing...
2 ADB server didn't ACK
3 * failed to start daemon *
4 error:

问题原因

不同软件中的 adb.exe 版本冲突。调用的 adb 命令的版本 和 android_sdk/platform-tools 目录下的 adb 版本不一样导致的(即调用的可能不是 android_sdk/platform-tools 目录下的 adb)。

解决方法

以我之前的举例:

1. 首先查看 Genymotion 配置的 sdk 路径要保持和 Android_sdk 的 SDK 路径一致,如下图所示:

2. 查看环境变量是否配置了多个 adb 路径,导致命令行调用的时候调用了错误版本的 adb

(1)在此电脑中搜索 adb.exe,可以看到除了Android_sdk里有 adb.exe,Monkey中也有adb.exe,你的可能还有其他的。

3. 查看系统调用的是否是 Android_sdk 中的 adb.exe。

(1)打开 命令行,输入 adb version:

C:WINDOWSsystem32>adb version

结果如下:adb 的版本为 1.0.32

Android Debug Bridge version 1.0.32

(2)进入到Android_sdk 配置的 sdk 路径,执行 adb.exe:

C:WINDOWSsystem32>cd /d D:Android_sdkandroid-sdk-windowsplatform-tools

D:Android_sdkandroid-sdk-windowsplatform-tools>adb.exe version

结果如下:adb 的版本为 1.0.41

Android Debug Bridge version 1.0.41
Version 29.0.2-5738569
Installed as D:Android_sdkandroid-sdk-windowsplatform-toolsadb.exe

(3)对比:从上面我们可以看到两个 adb 的版本是不一致的,说明我们调用 adb 的时候并不是用的 Android_sdk 中的 adb.exe。查看之前第1步中查出的其他的 adb.exe 的版本,若有与第2步中的(1)步骤结果一样的版本号,则说明问题就出在它身上,我们在直接调用或开启adb的时候,可能就是调用的它,而不是Android_sdk 中的adb.exe。

(4)验证一下第 (3)步。转到 上面查到的其他的 adb.exe 目录下,执行 adb.exe version,以我的Monkey目录中的 adb.exe 为例:

D:Android_sdkandroid-sdk-windowsplatform-tools>cd /d D:Monkeyplatform-tools_r22-windowsplatform-tools

D:Monkeyplatform-tools_r22-windowsplatform-tools>adb.exe version

结果如下:adb 的版本为 1.0.32

Android Debug Bridge version 1.0.32

可以看到 这个版本和上面的一样,所以,问题就出在它的身上,我们只需要删除这个目录下的adb.exe即可,再去调用adb的时候你会发现问题已经解决了。

原文地址:https://www.cnblogs.com/plsmile/p/11403939.html