您的位置:首页 > 其它

ADB server didn't ACK,解决方法,亲测可用

2013-09-06 20:04 417 查看
一直没搞明白这个问题咋出现的,但今天看到一个方法,搞定了!原来是豌豆荚占用了 5037 端口导致。

参见原文章:一个豌豆荚引发的血案——关于ADB server didn't ACK的问题

简单来讲,首先将Windows任务进程中的豌豆荚干掉,如果还是不行,再继续按下列步骤排查。

问题现象:

[plain] view
plaincopy

C:\Users\John>adb shell

adb server is out of date. killing...

ADB server didn't ACK

* failed to start daemon *

error: unknown host service

1、排查哪路英雄占用了 5037 端口,找出他的 PID 来算账。 netstat -ano 命令会出现好多行,仔细找找。

[html] view
plaincopy

C:\Users\John>netstat -ano

活动连接

协议 本地地址 外部地址 状态 PID

TCP 127.0.0.1:5037 John-PC:0 LISTENING 5084

2、找到相关的 PID ,然后查看其名字,干掉即可。

[plain] view
plaincopy

C:\Users\John>tasklist /fi "pid eq 5084

映像名称 PID 会话名 会话# 内存使用

========================= ======== ================ =========== ============

wandoujia2.exe 5048 Console 1 108,240 K

OK,干掉这个进程一般能搞定这个问题,感谢原文作者。

当我们通过eclipse开发Android应用时,会连接真机会使用模拟器进行仿真,有时候启动失败,会提示这样的错误。









工具/原料

Eclipse

CMD命令窗口


方法/步骤

1

首先通过CMD启动adb服务。这个时候会提示启动失败。





2

服务启动失败的原因有很多,但一般是端口绑定失败。我们来查看一下端口绑定信息。如图所示,真的是端口绑定出了问题。





3

我们来看看哪个服务占用了这个端口。这里面有2个进程占用了这个端口。





4

我们进入任务管理器,关闭这个进程。其中824进程是我的QQ,我已经关闭了。





5

再次启动服务,启动成功。





6

关闭Eclipse,重启,再次连接模拟器。







做项目标时辰经常8080端口无故被占用,弄了好久终于搞熟悉打听了,特此记录下来。

输入号令行:netstat -ano,获得下面的截图,可以清楚的看到是 pid为5616的占用8080端口。



接着输入:tasklist号令查询所有的pid对应的过程,如下图:



最后找到对应的过程在任务经管器中停止掉。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: