`

adb server is out of date. killing... 和 Adb connection Error:远程主机强迫关闭了一个现有的连接

阅读更多

 转自:

adb server is out of date. killing...

 

 

 

1:今天调试android的时候发现一个诡异的问题

 

  1. C:\Users\xxxx>adb start-server  
  2. adb server is out of date.  killing...  
  3. ADB server didn't ACK  
  4. * failed to start daemon *  


adb 不管执行 shell devices 还是logcat 都会报错

  1. adb server is out of date.  killing...  

究其源就是adb server没启动

到stackoverflow上查了一下 经过分析整理如下:

 

  1. C:\Users\xxxx>adb nodaemon server  
  2. cannot bind 'tcp:5037'  

原来adb server 端口绑定失败

继续查看到底是哪个端口给占用了

 

  1. C:\Users\xxxxxx>netstat -ano | findstr "5037"  
  2.   TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       15268
      TCP    127.0.0.1:5037         127.0.0.1:63733        ESTABLISHED     15268
      TCP    127.0.0.1:63733        127.0.0.1:5037         ESTABLISHED     1188

 

打开任务管理器kill掉15268这个进程。ok

重启eclipse;

 

PS:这个问题从PID看,金山的手机助手,就是占用的这个端口。所以如果装了金山的杀毒套件,进行手机充电的时候,有可能会出现此问题

 

Adb connection Error:远程主机强迫关闭了一个现有的连接

做android开发的时候eclipse的console一直出现这个问题,有时候是启动eclipse后就出现这个问题,有时候是运行android程序的时候出现的,重启avd和重启eclipse都不行。后面在网上找到了解决办法。

先 说原因嘛,这是ddms调用adb引发的. 经过一番搜索, 发现这是windows环境下, adb的一个限制, 也可以说是bug.  当手机上同时运行的进程数大于64时, 就会引发adb奔溃. 更深层次的原因, 就是windows API的WaitForMultipleObjects所支持的最大句柄数是MAXIMUM_WAIT_OBJECTS, 即64.

在网上找到了别人发的adb.exe,替换掉android sdk安装目录的platform-tools下的adb.exe文件。这个问题就不会出现错误了,原理是把最大支持数改为了256个。

文件下载地址:http://code.google.com/p/android/issues/detail?id=12141

分享到:
评论
1 楼 jstl1point0 2013-09-09  
我也遇到了,烦人

相关推荐

Global site tag (gtag.js) - Google Analytics