Eclipse 错误“ADB 服务器未确认,无法启动守护程序”

Posted

技术标签:

【中文标题】Eclipse 错误“ADB 服务器未确认,无法启动守护程序”【英文标题】:Eclipse error "ADB server didn't ACK, failed to start daemon" 【发布时间】:2011-08-07 21:28:33 【问题描述】:

更新 SDK 后,Eclipse 显示此错误:

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

当我运行 android 应用程序时,它会为我提供以下信息:

请确保 adb 正确位于 'D:\android-sdk-windows\platform-tools\adb.exe' 并且可以执行。

我该如何解决这个问题?

【问题讨论】:

刚刚安装了 genymotion,之后它开始发生,解决方案是手动从终端中删除 adb 命令,并在 ubantu 中的环境变量中设置 adb 路径,指向 sdk/platform-tools 然后它工作。 【参考方案1】:

谢谢,@jowett,我已经解决了同样的问题,执行这些步骤

第 1 步: CTRL+Shift+Esc打开任务管理器,里面有adb.exe进程并结束(杀死)那个进程

第 2 步: 现在,关闭当前在我的计算机上运行的 eclipse。

第 3 步: 再次,重新启动 eclipse 然后解决了这个问题。


对于那些使用 OS X 的人

killall adb

对于那些使用 Windows 的人

adb kill-server

应该可以解决问题。

【讨论】:

Ubantu:每次我杀死服务器时,它都会在同一个端口上启动,并且错误仍然存​​在。模拟器永远不会启动。我使用 sudo lsof -i 进行了检查,每次杀死服务器时,adb 都会有一个新的 pid。 adb 永远不会启动(它自己启动),因此 start-server 变得不必要了。【参考方案2】:

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

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

我通过以下步骤修复了它: 1、打开windows任务管理器,杀掉adb.exe进程。 2.关闭eclipse并重启。然后就可以了。

希望对你有帮助。

【讨论】:

【参考方案3】:

命令提示符(cmd.exe):

netstat -aon | findstr 5037

找到0.0.0.0的进程id:

确保它是 adb.exe:

tasklist | findstr 1980

杀死这个进程:

taskkill /f /t /im adb.exe

让亚行恢复正常:

来源:博文 *Android ADB server didn't ACK failed to start daemon*

【讨论】:

我这边是tfadb.exe,杀了之后就可以了,谢谢。 就我而言,svchost.exe 正在使用该端口。杀了之后,启动成功了。【参考方案4】:

如果您在使用 Android Studio 的同时使用 Genymotion 模拟器(在 Windows 或 Linux 上),则会出现这些症状:

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

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

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

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

【讨论】:

在将 Android Studio 更新到 2.1.2 后为我工作。【参考方案5】:

如果adb_usb.ini 中有换行符,ADB 通常会失败。删除它,重新启动它,这通常会解决问题(至少对我而言)。

【讨论】:

在尝试使用 Kindle Fire 进行调试时,想在此文件 ~/.android/adb_usb.ini 中创建一个条目,但在不知不觉中添加了一些额外的空白行。现在将其删除。修好了,谢谢。【参考方案6】:

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

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

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

获取应用程序的 PID。

使用Process Explorer找到进程并退出。

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

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

【讨论】:

谢谢! svchost.exe 出于某种原因突然使用了该端口。 不知道什么时候能修好,可惜还没修好。【参考方案7】:

我在 ~/.android/adb_usb.ini 的末尾输入了一个额外的空行导致了这个问题

(删除多余的空白行解决了问题)

【讨论】:

通过删除所有空行来解决类似的问题,而不仅仅是最后一个。 我遇到了同样的问题,因为我在输入 Kindle Fire 行时在末尾添加了一个空行。我删除了空白行,然后 adb 重新启动没有问题。谢谢。【参考方案8】:

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

    打开命令提示符,然后执行cd <platform-tools directory> 运行命令adb kill-server 打开 Windows 任务管理器并检查 adb 是否仍在运行。如果是,就杀了adb.exe 在命令提示符下运行命令adb start-server

【讨论】:

无需重启Eclipse! :)【参考方案9】:

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

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

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

【讨论】:

【参考方案10】:

确保您手机上的 USB 调试已开启。 ADB kill-server 和 ADB start-server 不是问题。

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 *

【讨论】:

【参考方案11】:

我已经对这个问题的另一个答案投了赞成票,但以防万一有人想知道,您无需重新启动 Eclipse 即可让 ADB 再次运行。只需打开一个 shell 并运行命令:

adb start-server

如果您没有在系统属性中设置 ADB 的路径,那么您必须首先进入 ADB 所在的目录(在 Android\android-sdk\platform-tools....我运行的是 Windows,我不知道mac人是怎么做的)。

【讨论】:

没关系。我也从命令行收到错误。 我没有找到如何在 Mac 上执行此操作的方法。强制退出亚行没有帮助,所以我不得不重新启动整个计算机。然后它又工作了。【参考方案12】:

如果您尚未安装 TCPVIEW 和 PROCESS EXPLORER,请访问 sysinternals.com。

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

使用 TCPVIEW 定位挂起的套接字。进程名称栏会显示关联的进程找不到。右键单击,然后选择“关闭连接”。套接字现在已关闭,adb 守护进程应该能够启动。

【讨论】:

很有帮助。此外,在 Process Explorer 中,如果您看到 adb.exe 运行时的 Path 列显示 [Error opening process],这可能是罪魁祸首。【参考方案13】:

我遇到了类似的问题。从任务管理器中终止 ADB 进程的现有实例对我来说工作。

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

所以,现在,当我得到这个 ADB 服务器没有 ACK,未能启动守护进程... 问题时,我在 Eclipse Help 中执行了“检查更新” em> 菜单项。 没有可用的更新,但至少“ADB 服务器没有确认”错误消失了。

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

【讨论】:

【参考方案14】:

在终端中输入./adb nodaemon server

如果返回Invalid content in adb_usb.ini,则说明.android 文件夹中的adb_usb.ini 文件有问题。

打开adb_usb.ini 并删除其内容。然后重新启动服务器...它对我有用。

【讨论】:

【参考方案15】:

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

同时检查插件是否已在 Eclipse 中正确配置 → Preferences

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

请检查您的防病毒软件。它可能阻塞了adb.exe或模拟器程序等的端口。这解决了我的问题。

【讨论】:

【参考方案16】:

除了@Bastet的解决方案:

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

按照 @Bastet 步骤,我发现有其他进程正在使用此地址。我继续杀了它,它给了我ACCESS DENIEDError

所以我使用tasklist | findstr **** 找到了进程的名称并从任务管理器中将其杀死。

此后它开始工作。

在我的例子中,bas_daemonbas_helper 正在使用这个地址,这两个地址都对应于 MOBOROBO。

【讨论】:

【参考方案17】:

我遇到了同样的问题。但是我的笔记本电脑上没有adb的进程。我只是注销并登录到我的帐户,它已解决...

之后,ADB 可以从 CMD 窗口启动。

【讨论】:

【参考方案18】:

无需重新启动任何设备或软件的最佳和最有效的方法是:

运行以下命令:

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

还有一件事.. ADB 是一个自力更生的东西。除非它想要自己工作,否则你不能做任何事情。我发现了另一种方法:让设备连接 5-6 分钟,然后等待。很快设备就会连接并尝试启动。

【讨论】:

【参考方案19】:

直到我将Samsung Galaxy S III 手机植根(遵循 xda-developer 论坛指南),这才开始发生。

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

杀死 adb.exe 进程并重新启动它可以解决问题。

【讨论】:

【参考方案20】:

查看防病毒软件或防火墙...是否会阻止您访问...在 k7 防病毒软件中,我关闭了系统监视器,它确实对我有用...

【讨论】:

【参考方案21】:

Linux/Ubuntu 用户也可能是这种情况....我有一个 android 模拟器正在运行,我不得不杀死它。为此,请执行以下操作

lsof -i :5307

(如果需要,使用 sudo) 请注意上述命令结果中的 pid。那么

kill -9 <pid_from_above>

然后继续

adb shell

【讨论】:

【参考方案22】:

我必须允许 adb.exe 在我的防火墙中访问我的网络。

【讨论】:

我正在使用这个防火墙:sphinx-soft.com/de/Vista/order.html 我所做的只是将 adb.exe 的规则更改为 allow all【参考方案23】:

杀死 Eclipse 然后重新启动对我没有帮助。我将 Android 工具添加到 PATH 变量中,启动了任务管理器并杀死了 adb.exe。

我重新启动了 Eclipse,然后它就可以工作了。

【讨论】:

以上是关于Eclipse 错误“ADB 服务器未确认,无法启动守护程序”的主要内容,如果未能解决你的问题,请参考以下文章

eclipse启动时发生错误,各位大大看看怎么解决

eclipse启动错误

无法打开eclipse,出现如下错误

c++eclipse错误错误解释

eclipse导入项目以后,内容没有错误,项目上却有个小红叉

Eclipse Eclipse 中JPEGEncodeParam 错误波浪线问题