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

用模拟器和真机来调试程序的时候,eclipse的console总是出现如下的错误:

[2015-01-27 10:37:36 - DeviceMonitor] Adb connection Error:远程主机强迫关闭了一个现有的连接。
[2015-01-27 10:37:38 - DeviceMonitor] Connection attempts: 1

重启avd和重启eclipse都不行,后来在找到了几种解决办法,记录一下。

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

解决办法一:

下载相应的adb.exe文件,用它替换掉你机器上的sdk的platform/tools目录下面的adb.exe。这个问题就不会出现错误了,原理是把最大支持数改为了256个。
文件下载地址:http://code.google.com/p/android/issues/detail?id=12141

办法二:DDMS → Devices → Reset adb 

eclipse中视图模式选择DDMS(还有常见的java和debug视图), 显示Devices窗口(若无可通过选择window->show view->Devices显示),再选择下拉箭头中的reset adb


此时eclipse会再自动重试一次,输入Connection attempts:1即表示成功

办法三:

在调试时,有时DDMS控制台会弹出以下信息:
[2015-01-18 17:17:11 - DeviceMonitor]Sending Tracking request failed!
[2015-01-18 17:17:11 - DeviceMonitor]Adb connection Error:远程主机强迫关闭了一个现有的连接。
[2015-01-18 17:17:12 - DeviceMonitor]Sending Tracking request failed!
[2015-01-18 17:17:12 - DeviceMonitor]Adb connection Error:远程主机强迫关闭了一个现有的连接。

一般在linux平台下是不会报这个错的,很简单就能解决:

方法一:1、运行cmd.exe,并将目录CD到/sdk/tools。2、运行adb kill-server关闭adb。3、运行adb start-server启动adb。

方法二 :1、打开任务管理器,列出所有的用户进程,强制终止所有的 adb.exe 进程。2、进入手机管理界面。调试界面有个可调试的选项,关闭一次后打开,把数据线从新连一次电脑(不行就重启手机)。3、在电脑终端下面进入自己的(如果没有配置环境变量) sdk路径下tools 或tools7 目录下面 ,输入 adb kill-server,然后输入 adb start-server 有配置环境变量的话,直接输入这两个命令就好了。

启动成功以后,就不会再出现这种错误了。

另一解决办法:开始->运行->cmd,进入到安卓的目录下android-sdk-windows\platform-tools,运行以下命令即可:adb devices

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页