adb server is out of date. killing 可能的解决方法

在学习采用adb命令来调试Android程序的时候已经不记得多少次碰到这这个问题:

打开Eclipse or Android Studio 发现不能找到设备,于是在dos窗口中输入命令adb shell,出现以下问题:

adb devicesadb server is out of date.  killing...
ADB server didn't ACK
* failed to start daemon *
error: unknown host service

网上各位大神都是这么解释原因的:adb的端口(5037)被占用了。

在尝试了各种方法之后,以下方法一般是可以解决问题的:

在cmd窗口:

C:\Users\xiaoming>adb nodaemon server
cannot bind 'tcp:5037'

C:\Users\xiaoming>netstat -ano | findstr "5037"
  TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       8516
  TCP    127.0.0.1:5037         127.0.0.1:59163        TIME_WAIT       0
  TCP    127.0.0.1:5037         127.0.0.1:59164        TIME_WAIT       0
  TCP    127.0.0.1:5037         127.0.0.1:59167        TIME_WAIT       0
  ......
C:\Users\xiaoming>tasklist | findstr "8516"
sjk_daemon                        8516 Console                    1     3,071 K

哦,原来是sjk_daemon进程占了adb的端口。

C:\Users\xiaoming>tasklist

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0         24 K
System                           4 Services                   0      1,128 K
sjk_daemon                     963 Console                    1      3,071 K
tasklist.exe                  1260 Console                    1      5,856 K

将这个进程kill掉:

C:\Users\xiaoming>taskkill /f /pid 963

如果这个命令提示无权限,那么,可以去windows的“任务管理器”中“进程”那个窗口,找到这个进程,将它杀掉。

再运行adb devices,就没有问题了。

C:\Users\xiaoming>adb devices
4df7f482396a301d        device

这个是网上https://blog.csdn.net/liranke/article/details/42524851#reply这位大哥的解法,但是我发现如果采用在windows的任务管理器中杀掉这个进程的方法并没有作用,所以还是寄希望于能够在dos窗口中将进程杀掉较为管用!

这里还有一种方法可能会有用:将设备中的USB调试关闭,然后再打开,之后输入adb devices命令可能就可以找到设备了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值