更新 SDK 后,Eclipse 显示此错误:
ADB 服务器没有确认,无法启动守护进程。
当我运行一个 Android 应用程序时,它给了我以下信息:
请确保 adb 正确位于 'D:\android-sdk-windows\platform-tools\adb.exe' 并且可以执行。
我该如何解决这个问题?
谢谢,@jowett,我已经解决了同样的问题,执行这些步骤
步骤 1:CTRL+Shift+Esc 打开任务管理器,其中有 adb.exe 进程并结束(杀死)该进程
第 2 步:现在,关闭当前在我的计算机上运行的 eclipse。
第3步:再次,重新启动eclipse然后解决了这个问题。
对于那些使用 OS X 的人
killall adb
对于那些使用 Windows
adb kill-server
应该做的伎俩。
我遇到了同样的问题,虽然我没有造成这种情况。无论如何,我找到了一些线索并最终修复。
当我打开 SDK 和 AVD 管理器时,发现 AVD 版本(2.3.3)与 android lib 版本(2.3)不同。所以我用 2.3 创建了一个新的 AVD。
我通过以下步骤修复它: 1. 打开 Windows 任务管理器并杀死 adb.exe 进程。 2.关闭eclipse并重启。然后它工作。
希望能帮助到你。
命令提示符(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*
如果您在使用 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 工具”选项并输入您想要的位置。
如果 adb_usb.ini
中有换行符,ADB 通常会失败。删除它,重新启动它,这通常会解决问题(至少对我来说)。
如果您为设备使用同步应用程序,也可能是因为有其他应用程序使用相同的 5037
端口。关闭端口 5037
上运行的所有服务并尝试启动 ADB。
要检查是否有任何应用程序正在使用端口 5037,请使用以下命令:
netstat -a -n -o |findstr "5037"
获取应用程序的 PID。
使用 Process Explorer 找到进程并退出它。
现在使用 adb start-server
或 adb get-state
启动/检查 ADB 服务器状态。
我在使用 Snappea / Wandoujia Sync 应用程序时遇到了这个问题。
我在 ~/.android/adb_usb.ini 的末尾输入了一个额外的空行导致了这个问题
(删除多余的空白行解决了问题)
我们可以很容易地解决这个问题。
打开命令提示符,然后执行 cd
https://i.stack.imgur.com/3IsxM.jpg
我已经解决了我的第一个问题:打开 Eclipse,打开 SDK Manager,然后选择要打开的设备。
或者您可以打开 SDK 目录。打开SDK Manager,然后选择要打开的设备
2:关闭Eclipse,然后再打开。
确保手机上的 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 *
我已经对这个问题的另一个答案投了赞成票,但是以防万一有人想知道,您不需要重新启动 Eclipse 来让 ADB 再次运行。只需打开一个外壳并运行以下命令:
adb start-server
如果您没有在系统属性中设置 ADB 的路径,那么您必须首先转到 ADB 所在的目录(在 Android\android-sdk\platform-tools 中......我正在运行 Windows,我没有'不知道mac人是怎么做事的)。
跑到 sysinternals.com 并选择 TCPVIEW 和 PROCESS EXPLORER,如果你还没有安装它们的话。
出于某种原因,ADB 守护程序在关闭套接字交换完成之前终止。如果您(从命令提示符)运行“NETSTAT -o”,您将看到处于 CLOSE_WAIT 状态的套接字(通常为 5037)和拥有的进程号。 Process Explorer 不会显示该进程 ID(守护程序已终止),并且名为 adb.exe 的进程(它打开了套接字)将消失。 (如果找到 adb.exe,请尝试终止任务并查看是否清理干净。)
使用 TCPVIEW,找到挂起的套接字。进程名称栏会显示关联的进程找不到。右键单击,然后选择“关闭连接”。套接字现在已关闭,并且 adb 守护程序应该能够启动。
我有一个类似的问题。从任务管理器中杀死 ADB 进程的现有实例对我不起作用。
就在几天前,我曾尝试安装 MIPS SDK 和 ADT-17,但 Eclipse 给了我错误,我没有解决这个问题。
所以,现在,当我得到这个 ADB 服务器没有 ACK,未能启动守护进程...问题时,我在 Eclipse 帮助菜单项中执行了“检查更新”。没有可用的更新,但至少“ADB 服务器没有确认”错误消失了。
我希望这在某些情况下会有所帮助。
在终端中键入 ./adb nodaemon server
。
如果返回 Invalid content in adb_usb.ini
,则 .android
文件夹中的 adb_usb.ini
文件有问题。
打开 adb_usb.ini
并删除其内容。然后重新启动服务器......它对我有用。
检查 Android 目录的路径。它不应包含空格等。
还要检查插件是否已在 Eclipse → 首选项中正确配置。
就我而言,我多次检查了所有内容,但仍然无法正常工作。我正要重新安装所有东西,但我在这个网站上找到了答案(其他一些帖子)。
请检查您的防病毒软件。它可能会阻塞 adb.exe
或模拟器程序等的端口。这解决了我的问题。
除了@Bastet 的解决方案:
实际上,我们必须使用地址 0.0.0.0:0
终止进程。这就是为什么大多数从任务管理器杀死 adb.exe
的人都在工作的原因(在我的情况下,即使在任务管理器中我也看不到它)。
执行 @Bastet 步骤后,我发现有其他进程正在使用此地址。我继续杀死它,它给了我 ACCESS DENIED
作为 Error
。
因此,使用 tasklist | findstr ****
我找到了进程的名称并从任务管理器中将其杀死。
此后它开始工作。
在我的例子中,bas_daemon
和 bas_helper
正在使用这个地址,这两个地址都对应于 MOBOROBO。
我有同样的问题。但是我的笔记本电脑上没有adb
的进程。我只是注销并登录到我的帐户,它已解决...
之后,ADB 可以从 CMD 窗口启动。
无需重新启动任何设备或软件的最佳和最有效的方法是:
运行以下命令:
adt-bundle-windows-x86_64\sdk\platform-tools\adb.exe
还有一件事..亚行是一个自力更生的东西。除非它想要自己工作,否则你不能做任何事情。我发现了另一种方法:让设备连接 5-6 分钟,然后等待。很快设备就会连接并尝试启动。
直到我将我的 Samsung Galaxy S III 手机植根(遵循 xda-developer 论坛指南),我才开始发生这种情况。
它非常随机地发生,但它肯定是在运行 Eclipse 时发生的。
杀死 adb.exe 进程并重新启动它可以解决问题。
查看防病毒软件或防火墙...是否有任何阻止您访问...在 k7 防病毒软件中,我关闭了系统监视器,它确实对我有用...
Linux/Ubuntu 用户也可能是这种情况......我有一个 android 模拟器正在运行,我不得不杀死它。为此,请执行以下操作
lsof -i :5307
(如果需要,请使用 sudo)注意上述命令结果中的 pid。然后
kill -9 <pid_from_above>
然后继续
adb shell
我必须允许 adb.exe 在我的防火墙中访问我的网络。
allow all
杀死 Eclipse 然后重新启动对我没有帮助。我将 Android 工具添加到 PATH 变量中,启动了任务管理器并杀死了 adb.exe。
我重新启动了 Eclipse,然后它工作了。