【问题描述】html
一、打开运行:window+R,输入cmd回车android
二、使用命令 adb shell 没法登陆安卓设备,提示以下:shell
adb server is out of date. killing...工具
* daemon started successfully *.net
** daemon still not running3d
error: cannot connect to daemonorm
三、使用 netstat 命令发现占用 5037 端口的进程就是 adb.exe,用 taskkill 命令杀掉进程后,该进程会当即自动重启并抢占端口。server
【问题前提】htm
已配置AndroidSDK工具包adb,配置方法:http://jingyan.baidu.com/article/17bd8e52f514d985ab2bb800.html;进程
【解决办法】
方法一:(先尝试关掉9一、360等手机助手)
一、在控制台下查看 adb 工具要使用的端口号,命令为adb nodaemon server
发现端口号是 5037,以下:
二、查找占用该端口的进程,命令为netstat -ano | find "5037"
发现是 PID 为 6580 的进程占用了 5037 端口,以下:
(补:cmd内容比较多不能查看上一页,能够定向导出文件,格式:XXX>>test.txt
如:netstat -ano | find "5037">>adbtest.txt,而后开始中搜索adbtest.txt,查看详细文档)
三、通常状况下这时使用 taskkill /pid 6580 /f 命令就能够杀掉进程释放端口,但本文开篇说了这招没起做用。因此这里介绍一个更稳妥的办法:
先打开任务管理器,找到 PID 为 6580 的进程(若是没看到 PID 这列信息,须要点击 “查看 -> 选择列 -> PID 进程标识符”),右键单击进程名调出菜单,再单击 “打开文件位置”。以下:
这时会跳转到启动该进程的可执行文件所在的文件夹(若是你对 cmd 命令比较熟悉的话,也可使用 wmic process 命令查看进程的路径),发现是91助手占了adb的窗口,我确实刚刚使用而且没有关闭。由于他有守护进程存在,因此我使用 taskkill 命令杀死她启动的 adb.exe 进程后,守护进程会当即检测到并重启进程。
关闭这个程序后,就又能正常在控制台使用 adb 工具登陆设备了。以下:
相似的,端口占用也有多是你安装的一些 手机助手类 的软件致使的,好比 百度xx、腾讯xx、360xx 等。一样,关掉相应主程序就能够解除端口占用了。
方法二(没有验证):
修改 adb 工具的端口。新建一个名字为ANDROID_ADB_SERVER_PORT的环境变量,她的值就是 adb 的端口,给她赋一个没有被其余程序使用的端口值,好比 12345。