ChatGPT解决这个技术问题 Extra ChatGPT

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

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

ADB 服务器没有确认,无法启动守护进程。

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

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

我该如何解决这个问题?

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

S
Sameer

谢谢,@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 变得不必要。
S
Stephane Rolland

我遇到了同样的问题,虽然我没有造成这种情况。无论如何,我找到了一些线索并最终修复。

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

我通过以下步骤修复它: 1. 打开 Windows 任务管理器并杀死 adb.exe 进程。 2.关闭eclipse并重启。然后它工作。

希望能帮助到你。


P
Peter Mortensen

命令提示符(cmd.exe):

netstat -aon | findstr 5037

找到0.0.0.0的进程id:

https://i.stack.imgur.com/LG1Yo.png

确保它是 adb.exe:

tasklist | findstr 1980

https://i.stack.imgur.com/tVb9C.png

杀死这个进程:

taskkill /f /t /im adb.exe

https://i.stack.imgur.com/lyKoR.png

让亚行恢复正常:

https://i.stack.imgur.com/Ghpis.png

学分:博文 *Android ADB server didn't ACK failed to start daemon*


我这边是tfadb.exe,杀了之后就可以了,谢谢。
就我而言, svchost.exe 正在使用该端口。杀了之后,就成功启动了。
R
Raffael

如果您在使用 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:

https://i.stack.imgur.com/kmx1n.png

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


将 Android Studio 更新到 2.1.2 后对我有用。
P
Peter Mortensen

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


在尝试使用 Kindle Fire 进行调试时,想在此文件中添加一个条目 ~/.android/adb_usb.ini,但在不知不觉中添加了一些额外的空白行。现在将其删除。修好了,谢谢
P
Peter Mortensen

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

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

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

获取应用程序的 PID。

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

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

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


谢谢! svchost.exe 出于某种原因突然使用了该端口。
我不知道什么时候能解决这个问题,但仍然不能解决实在是太可惜了。
n
nmr

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

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


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

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

打开命令提示符,然后执行 cd 运行命令 adb kill-server 打开 Windows 任务管理器并检查 adb 是否仍在运行。如果是,只需在命令提示符下杀死 adb.exe 运行命令 adb start-server

https://i.stack.imgur.com/3IsxM.jpg


无需重启 Eclipse! :)
P
Peter Mortensen

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

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

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


P
Peter Mortensen

确保手机上的 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 *

d
dell116

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

adb start-server

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


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

跑到 sysinternals.com 并选择 TCPVIEW 和 PROCESS EXPLORER,如果你还没有安装它们的话。

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

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


有帮助。此外,在 Process Explorer 中,如果您看到运行的 adb.exe 的 Path 列显示 [Error opening process],则可能是罪魁祸首。
P
Peter Mortensen

我有一个类似的问题。从任务管理器中杀死 ADB 进程的现有实例对我不起作用。

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

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

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


P
Peter Mortensen

在终端中键入 ./adb nodaemon server

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

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


P
Peter Mortensen

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

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

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

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


P
Peter Mortensen

除了@Bastet 的解决方案:

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

执行 @Bastet 步骤后,我发现有其他进程正在使用此地址。我继续杀死它,它给了我 ACCESS DENIED 作为 Error

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

此后它开始工作。

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


P
Peter Mortensen

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

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


P
Peter Mortensen

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

运行以下命令:

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

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


P
Peter Mortensen

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

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

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


P
Peter Mortensen

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


V
Venkatesh A

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

lsof -i :5307

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

kill -9 <pid_from_above>

然后继续

adb shell

T
Terel

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


我正在使用这个防火墙:sphinx-soft.com/de/Vista/order.html 我所做的只是将 adb.exe 的规则更改为 allow all
P
Peter Mortensen

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

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