解决adb连接问题

转载:http://blog.csdn.net/xiaanming/article/details/9401981

转载:http://blog.csdn.net/linghu_java/article/details/43735225


第一种:

ADB server didn't ACK 这个问题会困恼很多的新手朋友,我以前刚开始做Android的时候也遇到过这个问题,不过自己百度,google啥的,也不知道怎么就给解决了,看到群里很多新手朋友都会问这个问题,说实话我也没有一个解决这个问题的终极方法(百试百灵的那种,哈哈),自己没遇到也没有认真的去对待他,今天,就是在今天,我打开Eclipse连上手机,准备调试程序,出现如下的信息

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. The connection to adb is down, and a severe error has occured.   
  2. You must restart adb and Eclipse.   
  3. Please ensure that adb is correctly located at 'D:\android-2.2-windows\platform-tools\adb.exe' and can be executed.  
然后我就按照他的要求来做,重启Eclipse和adb,然后确认adb的路径是否正确,然后当我再次运行程序的时候,依旧不行,之后我就开始百度了,有朋友说先在DOS下运行adb kill-server(你必须在环境变量中配好你adb的路径或者进入到adb.exe的目录下),然后在adb start-server,当我运行adb start-server的时候,DOS出现如下信息

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. * daemon not running. starting it now *   
  2. ADB server didn't ACK   
  3. * failed to start daemon *   
然后在运行程序还是不行,重复搞了很多次老不行,还有朋友说在任务管理器找到adb.exe,然后关闭,重启Eclipse,我打开任务管理器,发现根本没有找到adb.exe,这时候我流泪满面了,然后我冷静下来,知道有些朋友遇到这个错误是因为豌豆荚啥的软件占用了adb.exe的端口,我的电脑里面根本没有安装豌豆荚,然后我想看看是谁占用adb的端口,我从网上查到adb.exe使用的端口是5037,接下来我给大家介绍解决方法

  • 查看5037端口被谁占用了,开始--运行--CMD 到命令提示符,输入 netstat -aon|findstr "5037",如下图                                                                          
  • 我们从上面根本就看不出5037端口被谁占用,我们需要根据后面的PID(2748)来查找占用该端口的应用程序,输入 tasklist|findstr "2748" ,如下图                                                                                                                                                                                                                                                                                                      注: 我这里5037端口是正确的被adb.exe占用,如果是你,就是其他的应用程序啦
  • 结束该进程,输入taskkill /f /t /im 你的进程名,例如adb.exe,如下图,在重新连接手机,这时候你会发现程序运行起来了                                    

第二种:

问题描述:在eclipse的Logcat出现错误

[2014-01-08 14:00:07 - adb] ADB server didn't ACK
[2014-01-08 14:00:07 - adb] * failed to start daemon *
[2014-01-08 14:07:24 - adb] ADB server didn't ACK
[2014-01-08 14:07:24 - adb] * failed to start daemon *

解决方法:先找到adb服务是否绑定端口出现问题,如果真的是绑定端口出现问题,找出该端口被哪个进程占据,最后杀掉这个进程。


1. 首先通过CMD启动adb服务。这个时候会提示启动失败。
E:\android-SDK-4.2\android-sdk\platform-tools>adb start-server
adb server is out of date.  killing...
ADB server didn't ACK
* failed to start daemon *

2. 服务启动失败的原因有很多,但一般是端口绑定失败。我们来查看一下端口绑定信息。如图所示,真的是端口绑定出了问题。
E:\android-SDK-4.2\android-sdk\platform-tools>adb nodaemon server
cannot bind 'tcp:5037'

3. 我们来看看哪个服务占用了这个端口。这里面有2个进程占用了这个端口。
E:\android-SDK-4.2\android-sdk\platform-tools>netstat -ano | findstr "5037"
  TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       5456
  TCP    127.0.0.1:5037         127.0.0.1:1221         TIME_WAIT       0
  TCP    127.0.0.1:5037         127.0.0.1:1222         TIME_WAIT       0

在控制台下杀死在5456端口监听的进程

E:\android-SDK-4.2\android-sdk\platform-tools>taskkill /pid 5456
错误: 无法终止 PID 为 5456 的进程。
原因: 只能强行终止这个进程(带 /F 选项)。

E:\android-SDK-4.2\android-sdk\platform-tools>taskkill /pid 5456 /f
成功: 已终止 PID 为 5456 的进程。

杀死造成问题的进程,再执行前面的命令

E:\android-SDK-4.2\android-sdk\platform-tools>netstat -ano | findstr "5037"

E:\android-SDK-4.2\android-sdk\platform-tools>adb nodaemon server

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值