Eclipse 错误“ ADB 服务器没有 ACK,启动守护进程失败”

在更新 SDK 之后,Eclipse 显示了这个错误:

ADB 服务器没有 ACK,启动守护进程失败。

当我运行一个 Android 应用程序时,它会给我以下信息:

请确保 adb 正确地位于“ D: android-sdk-windows Platform-tools adb.exe”并可以执行。

我怎样才能解决这个问题?

135902 次浏览

我已经解决了第一个问题: 打开 Eclipse,打开 SDK Manager,然后选择要打开的设备。

或者您可以打开 SDK 目录。打开 SDK 管理器,然后选择要打开的设备

2: 关闭 Eclipse,然后打开它。

我遇到了同样的问题,虽然我不知道是什么原因造成的。无论如何,我找到了一些线索,最终修复了。

当我打开 SDK 和 AVD 管理器,却发现 AVD 版本(2.3.3)与 android lib 版本(2.3)不一样。所以我用2.3创建了一个新的 AVD。

我通过以下步骤解决了这个问题: 1. 打开 windows 任务管理器并杀死 adb.exe 进程。 2. 关闭 Eclipse 并重新启动它。然后它就可以工作了。

希望能有帮助。

谢谢,@ Jowett,我已经解决了我的同样的问题,做这些步骤

第一步: CTRL + Shift + Esc打开任务管理器,该管理器具有 adb.exe 进程并结束(kill)该进程

第二步: 现在,关闭 Eclipse,它目前正在我的电脑上运行。

第三步: 同样,重新启动 eclipse,然后解决了这个问题。


对于那些使用 OS X 的用户

killall adb

对于那些使用 Windows 的用户

adb kill-server

应该能行。

在终端中键入 ./adb nodaemon server

如果返回 Invalid content in adb_usb.ini,那么 .android文件夹中的 adb_usb.ini文件就有问题。

打开 adb_usb.ini并删除它的内容。然后重启服务器... 它为我工作。

如果你还没有安装好的话,你可以跑到 sysinternals.com ,选择 TCPVIEW 和 PROCESS EXPLORER。

由于某种原因,ADB 守护进程在关闭套接字交换完成之前终止。如果运行(从命令提示符)“ NETSTAT-o”,您将看到 CLOSE _ WAIT 状态下的套接字(通常为5037)和所属进程号。Process Explorer 不会显示该进程 ID (守护进程终止) ,并且名为 adb.exe (打开套接字)的进程将不复存在。(如果找到 adb.exe,请尝试终止该任务,并查看是否清理了所有内容。)

使用 TCPVIEW 定位挂起的套接字。进程名称列将显示找不到关联的进程。右键单击,并选择“关闭连接”。套接字现在已经关闭,adb 守护进程应该可以启动了。

我在 ~/. android/adb _ usb. ini 的末尾输入了一个额外的空行,从而导致了这个问题

(删除额外的空行修复了问题)

我已经对这个问题的另一个答案投了赞成票,但是如果有人想知道的话,您不需要重新启动 Eclipse 来让 ADB 再次运行。只需打开一个 shell 并运行以下命令:

adb start-server

如果你没有在你的系统属性中设置到 ADB 的路径,那么你必须首先去 ADB 存在的目录(在 Android Android-sdk Platform-tools 中... ... 我在运行 Windows,我不知道 Mac 的人是如何做事的)。

如果 adb_usb.ini中有一个新行,亚行经常会失败。删除它,重新启动它,这通常会解决问题(至少对我来说)。

检查 Android 目录的路径。它不应该包含空格等。

还要检查插件是否已经在 Eclipse → 偏好中正确配置。

在我的情况下,我已经检查了所有的多次,但它仍然不工作。我正要重新安装所有的东西,但是我在这个网站上找到了一个答案(一些其他的帖子)。

一定要检查你的杀毒软件。它可能会阻塞 adb.exe或模拟器程序等的端口。这就解决了我的问题。

我也有同样的问题。但是在我的笔记本电脑上没有 adb进程。我只要登出登录我的账户,就解决了..。

此后,亚行可以从 CMD 窗口开始。

我也有过类似的问题。从 Task Manager 中删除 ADB 流程的一个现有实例对我来说确实有效。

就在几天前,我尝试安装 MIPS SDK 和 ADT-17,Eclipse 给了我一个错误,我没有修复这个问题。

因此,现在,当我遇到这个 ADB 服务器没有 ACK,启动守护进程失败..。问题时,我在 Eclipse救命菜单项中执行了“ CheckforUpdate”。 没有可用的更新,但至少“ ADB 服务器没有 ACK”错误消失了。

我希望这能在某些情况下有所帮助。

如果您正在为设备使用同步应用程序,这也可能是因为还有其他应用程序使用相同的 5037端口。关闭在端口 5037上运行的所有服务,并尝试启动 ADB。

若要检查是否有任何应用程序正在使用端口5037,请使用以下命令:

netstat -a -n -o |findstr "5037"

获取应用程序的 PID。

使用 进程资源管理器查找进程并退出它。

现在使用 adb start-serveradb get-state启动/检查 ADB 服务器状态。

当我使用 Snappea/Wandoujia Sync 应用程序时遇到了这个问题。

不重启任何设备或软件的最佳和最有效的方法是:

运行以下命令:

adt-bundle-windows-x86_64\sdk\platform-tools\adb.exe

还有一件事。.亚洲开发银行是一个独立的东西。你不能做任何事,除非它想自己工作。我还发现了一个办法: 让设备连接5-6分钟,然后等待。很快设备连接上并试图发射。

直到我植入了 三星 Galaxy S III手机(遵循 xda 开发者论坛指南) ,这种情况才开始发生。

它的发生相当随机,但它肯定是在运行 Eclipse 时发生的。

关闭 adb.exe 进程并重新启动它可以解决这个问题。

我们可以很容易地解决这个问题。

  1. 打开命令提示符,执行 cd <platform-tools directory>
  2. 运行命令 adb kill-server
  3. 打开 Windows 任务管理器并检查 adb是否仍在运行。如果仍在运行,只需关闭 adb.exe
  4. 在命令提示符下运行命令 adb start-server

Enter image description here

命令提示符(cmd.exe) :

netstat -aon | findstr 5037

查找0.0.0.0的进程 id:

Enter image description here

确保它是 adb.exe:

tasklist | findstr 1980

Enter image description here

终止这个过程:

taskkill /f /t /im adb.exe

Enter image description here

让亚行恢复正常:

Enter image description here

图片来源: blog post * Android ADB 服务器没有 ACK < em > 启动 daemon 失败 *

确保您手机上的 USB 调试已经打开。 ADB 终止服务器和 ADB 启动服务器不是问题。

C:\Documents and Settings\Administrator> adb nodaemon server


- cannot bind 'tcp:5037'


C:\Documents and Settings\Administrator> netstat -aon | findstr "5037"


- TCP 127.0.0.1:1130 127.0.0.1:5037 TIME_WAIT 0
- TCP 127.0.0.1:1269 127.0.0.1:5037 TIME_WAIT 0
- TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 3088
- TCP 127.0.0.1:5037 127.0.0.1:1128 TIME_WAIT 0
- TCP 127.0.0.1:5037 127.0.0.1:1129 TIME_WAIT 0
- TCP 127.0.0.1:5037 127.0.0.1:1270 TIME_WAIT 0


C:\Documents and Settings\Administrator>tasklist -fi "pid eq 3088"


- Image name PID session name session # memory usage

========================= ====== ================ ======== ============

 - adb.exe 3088 Console 0 3,816 K


C:\Documents and Settings\Administrator>taskkill /f /pid 3088


- Success: terminate the PID for the process of 3,088.


C:\Documents and Settings\Administrator>adb start-server


- daemon not running. starting it now on port 5037 *
- daemon started successfully *

杀死 Eclipse 然后重启对我没有任何帮助。我将 Android 工具添加到 PATH 变量中,启动 Task Manager 并关闭 adb.exe。

我重启了 Eclipse 然后就成功了。

看看防病毒或防火墙... 有没有任何阻止你访问... 在 k7防病毒我关闭了系统监视器,它确实为我工作..。

我不得不允许 adb.exe 访问我的防火墙网络。

如果您同时使用 Genymotion 模拟器(在 Windows 或 Linux 上)和 Android Studio,就会出现以下症状:

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

Genymotion 包含了自己的 adb副本,它干扰了 Android SDK 中捆绑的 adb副本。

最简单的修复方法似乎是更新您的 Genymotion 设置,使其使用与您的 Android SDK 相同的 ADB:

genymotion ADB settings

只要选中“使用自定义 Android SDK 工具”选项并输入您想要的位置。

除了 @ Bastet的解决方案:

实际上,我们必须使用地址 0.0.0.0:0终止进程。这就是为什么大多数人从任务管理器杀死 adb.exe是工作(在我的情况下,我不能看到它,甚至在任务管理器)。

按照 @ Bastet步骤,我发现其他一些进程正在使用这个地址。我继续杀它,它给了我 ACCESS DENIED作为 Error

因此,使用 tasklist | findstr ****,我找到了进程的名称,并从 Task Manager 中杀死了它。

之后它开始工作。

在我的案例中,bas_daemonbas_helper都使用这个地址,它们都对应于 MOBOROBO

Linux/Ubuntu 用户也可能是这种情况... ..。我有个仿真机器人在运行,我必须杀了它。要做到这一点,请执行以下操作

lsof -i :5307

(需要时使用 sudo) 注意上面命令的结果中的 pid

kill -9 <pid_from_above>

那就继续吧

adb shell