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

本文介绍了在Windows环境下,由于adb的限制导致的调试Android设备时出现的错误:'Adb connection Error:远程主机强迫关闭了一个现有的连接'。提供了三种解决方案,包括替换adb.exe、通过DDMS重置adb和通过命令行操作adb服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用模拟器和真机来调试程序的时候,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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值