Answers:
如果您与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工具”选项,然后输入所需的位置即可。
命令提示符(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服务器未确认启动守护程序的失败 *
如果您正在使用设备的同步应用程序,则可能还因为其他应用程序使用同一5037
端口。关闭端口上运行的所有服务,5037
然后尝试启动ADB。
要检查是否有任何应用程序正在使用端口5037,请使用以下命令:
netstat -a -n -o |findstr "5037"
获取应用程序的PID。
使用流程浏览器找到流程并退出。
现在使用adb start-server
或adb get-state
启动/检查ADB服务器状态。
我在使用Snappea / Wandoujia Sync应用程序时遇到了问题。
我们可以很容易地解决这个问题。
cd <platform-tools directory>
adb kill-server
adb
仍在运行。如果是,那就杀了adb.exe
adb start-server
在命令提示符下运行命令确保手机上的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 *
我已经在此问题上投票了另一个答案,但是万一有人想知道,您无需重新启动Eclipse即可再次运行ADB。只需打开一个shell并运行命令:
adb start-server
如果您尚未在系统属性中设置ADB的路径,则必须首先转到ADB所在的目录(在Android \ android-sdk \ platform-tools ...中。我正在运行Windows,但我没有不知道Mac员工是如何做的)。
如果尚未安装,请运行sysinternals.com并选择TCPVIEW和PROCESS EXPLORER。
由于某种原因,ADB守护程序在关闭套接字交换完成之前终止。如果运行(从命令提示符下)“ NETSTAT -o”,您将看到套接字(通常为5037)处于CLOSE_WAIT状态以及拥有的进程号。进程资源管理器不会显示该进程ID(守护程序已终止),名为adb.exe(打开套接字)的进程将消失。(如果找到adb.exe,请尝试终止该任务,然后查看是否得到清理。)
使用TCPVIEW,找到挂起的套接字。进程名称列将显示找不到关联的进程。右键单击,然后选择“关闭连接”。现在,套接字已关闭,并且adb守护程序应该能够启动。
键入./adb nodaemon server
在终端。
如果返回Invalid content in adb_usb.ini
,则adb_usb.ini
文件.android
夹中的文件存在问题。
打开adb_usb.ini
并清除其内容。然后重新启动服务器...对我有用。
除了@Bastet的解决方案:
实际上,我们必须使用address终止进程0.0.0.0:0
。这就是为什么对于大多数adb.exe
从“任务管理器”中杀死的人都在工作的原因(就我而言,即使在“任务管理器”中我也看不到它)。
按照@Bastet步骤,我发现其他一些进程正在使用该地址。我继续杀它,它给我ACCESS DENIED
的Error
。
因此,tasklist | findstr ****
我使用找出了进程的名称,并从任务管理器中将其杀死。
此后,它开始工作。
就我而言bas_daemon
,bas_helper
正在使用该地址,这两个地址都对应于MOBOROBO。
无需重新启动任何设备或软件的最佳,最有效的方法是:
运行以下命令:
adt-bundle-windows-x86_64\sdk\platform-tools\adb.exe
还有一件事..亚行是一种自立的东西。除非它希望自己起作用,否则您将无能为力。我发现了另一种方法:将设备保持连接状态5-6分钟,然后等待。很快设备就连接好并尝试启动。
直到我扎根了三星Galaxy S III手机(在xda-developer论坛指南之后),这才开始发生。
它是随机发生的,但是肯定是在运行Eclipse时发生的。
杀死adb.exe进程并重新启动它可以解决问题。
我必须允许adb.exe访问防火墙中的网络。
allow all