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


158

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

ADB服务器未ACK,无法启动守护程序。

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

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

我该如何解决这个问题?


最近才安装了genymotion,此后开始发生,解决方法是从终端手动删除adb命令,并在ubantu中的环境变量中将adb路径设置为指向sdk / platform-tools,然后它起作用了。
vikas kumar

Answers:


263

谢谢@jowett,按照以下步骤我已经解决了我的相同问题

步骤1: CTRL + Shift+ Esc打开任务管理器,其具有adb.exe过程和结束(中止),该过程

步骤2: 现在,关闭我的计算机上当前正在运行的Eclipse。

步骤3: 再次,重新启动eclipse,然后解决了该问题。


对于使用OS X的用户

killall adb

对于使用Windows的用户

adb kill-server

应该可以。


40

我遇到了同样的问题,尽管不是什么原因造成的。无论如何,我找到了一些线索,并最终解决了。

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

我通过以下步骤对其进行了修复:1.打开Windows任务管理器并杀死adb.exe进程。2.关闭Eclipse并重新启动。然后就可以了。

希望能帮助到你。


35

如果您与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:

genymotion ADB设置

只需选中“使用自定义Android SDK工具”选项,然后输入所需的位置即可。


将Android Studio更新到2.1.2后对我有用。
Noel Bautista

35

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


尝试使用Kindle Fire进行调试时,想在此文件〜/ .android / adb_usb.ini中输入一个条目,但在不知不觉中添加了一些额外的空行。现在将其删除。修复,谢谢。
提鲁

35

命令提示符(cmd.exe):

netstat -aon | findstr 5037

找到进程ID 0.0.0.0:

在此处输入图片说明

确保它是adb.exe:

tasklist | findstr 1980

在此处输入图片说明

终止此过程:

taskkill /f /t /im adb.exe

在此处输入图片说明

让ADB恢复正常:

在此处输入图片说明

图片来源:博客文章* Android ADB服务器未确认启动守护程序的失败 *


我的身边是tfadb.exe,杀死它后,它可以正常工作,谢谢。
BobGao 2014年

就我而言,svchost.exe使用的是端口。杀死它后,它成功启动。
ranka47

13

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

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

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

获取应用程序的PID。

使用流程浏览器找到流程并退出。

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

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


谢谢!svchost.exe由于某种原因突然使用了该端口。
2013年

我不知道什么时候可以解决这个问题,但是仍然不能解决是一个遗憾。
Dejan

8

我通过在〜/ .android / adb_usb.ini的末尾输入一个额外的空行引起了此问题

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


通过删除所有空白行而不只是最后一行来解决类似的问题。
帕维尔

2
我遇到了同样的问题,因为在输入Kindle Fire行时在末尾添加了一个空白行。我删除了空白行,adb重新启动没有问题。谢谢。
杰罗姆·穆尼拉克

7

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

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

在此处输入图片说明


无需重新启动Eclipse!:)
TWiStErRob

5

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

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

2:关闭Eclipse,然后将其打开。


5

确保手机上的USB调试已打开。ADB kill服务器和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 *

4

我已经在此问题上投票了另一个答案,但是万一有人想知道,您无需重新启动Eclipse即可再次运行ADB。只需打开一个shell并运行命令:

adb start-server

如果您尚未在系统属性中设置ADB的路径,则必须首先转到ADB所在的目录(在Android \ android-sdk \ platform-tools ...中。我正在运行Windows,但我没有不知道Mac员工是如何做的)。


2
没关系 我也从命令行得到错误。
IgorGanapolsky '12

我没有找到在Mac上如何做的方法。强制退出亚行无济于事,所以我不得不重新启动整个计算机。然后它再次工作。
Marcel Bro 2014年

2

如果尚未安装,请运行sysinternals.com并选择TCPVIEW和PROCESS EXPLORER。

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

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


很有帮助 另外,在Process Explorer中,如果看到adb.exe的“ Path”列显示“ Error error process”,则可能是罪魁祸首。
Samik R 2012年

2

我有一个类似的问题。杀死从任务管理器的进程,亚行的现有实例并没有为我工作。

几天前,我曾尝试早些安装MIPS SDK和ADT-17,而Eclipse给了我错误,但我没有解决该问题。

因此,现在,当我得到此ADB服务器未ACK的消息时,无法启动守护程序...问题,我在Eclipse 帮助菜单项中执行了“检查更新” 。没有可用的更新,但是至少“ ADB服务器未确认”错误消失了。

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


1

键入./adb nodaemon server在终端。

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

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


1

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

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

就我而言,我已多次检查所有内容,但仍然无法正常工作。我本来打算重新安装所有内容,但是我在此站点上找到了答案(另一些帖子)。

请检查您的防病毒软件。可能是阻塞了adb.exe程序端口或仿真器程序等。在我的情况下,这解决了问题。


1

除了@Bastet的解决方案:

实际上,我们必须使用address终止进程0.0.0.0:0。这就是为什么对于大多数adb.exe从“任务管理器”中杀死的人都在工作的原因(就我而言,即使在“任务管理器”中我也看不到它)。

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

因此,tasklist | findstr ****我使用找出了进程的名称,并从任务管理器中将其杀死。

此后,它开始工作。

就我而言bas_daemonbas_helper正在使用该地址,这两个地址都对应于MOBOROBO


0

我有同样的问题。但是adb我的笔记本电脑上没有任何处理。我刚刚注销并登录到我的帐户,此问题已解决...

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


0

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

运行以下命令:

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

还有一件事..亚行是一种自立的东西。除非它希望自己起作用,否则您将无能为力。我发现了另一种方法:将设备保持连接状态5-6分钟,然后等待。很快设备就连接好并尝试启动。


0

直到我扎根了三星Galaxy S III手机(在xda-developer论坛指南之后),这才开始发生。

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

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


0

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



-1

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

我重新启动了Eclipse,然后它起作用了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.