主机中的软件中止了已建立的连接


132
[2011-04-11 13:27:36-ddmlib]已建立的连接已被主机中的软件中止
java.io.IOException:建立的连接被主机中的软件中止了
    在sun.nio.ch.SocketDispatcher.write0(本机方法)
    在sun.nio.ch.SocketDispatcher.write(未知源)
    在sun.nio.ch.IOUtil.writeFromNativeBuffer(未知来源)
    在sun.nio.ch.IOUtil.write(未知来源)
    在sun.nio.ch.SocketChannelImpl.write(未知源)
    在com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
    在com.android.ddmlib.Client.sendAndConsume(Client.java:573)
    在com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:349)
    在com.android.ddmlib.Client.requestAllocationStatus(Client.java:419)
    在com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:840)
    在com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:808)
    在com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:767)
    在com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:635)
    在com.android.ddmlib.DeviceMonitor.access $ 100(DeviceMonitor.java:42)
    在com.android.ddmlib.DeviceMonitor $ 3.run(DeviceMonitor.java:563)

1
谢谢Nishant,这里也提到了类似的答案...
kamal_tech_view 2012年

1
@Nishant,该链接将我带到带有诸如“在哪里放置”之类的链接的页面。我认为内容已移动。您可以发布新链接吗?
msknapp 2014年

查看属性> Java Build Path,可能正在寻找缺少的库
Benny

Answers:


121

通过关闭Eclipse并重新启动它,可以轻松解决此问题。Eclipse有时无法与仿真器建立连接,因此在某些情况下可能会发生这种情况。


8
对我不起作用。发生这种情况时,我必须完全重启计算机(这很常见!)
Nate

13
@Nate如果还重新启动adb(adb kill-server / adb启动服务器),是否可以避免重新启动计算机?
比约恩

3
非常感谢,比约恩。我确实找到了另一个链接,并根据它的建议,为自己编写了一个.bat脚本,该脚本先执行“ adb断开连接”,然后执行“ adb kill-server”。无需重新启动即可解决问题。再次感谢您的跟进!
Nate

6
同样的问题。我运行了JetBrains IDEA。关闭IDEA有所帮助。
纳什

6
不仅eclipse.Android studio看起来也像那样
史蒂夫(Steve)

69

检出可能有两个Eclipse实例指向同一个Android SDK ...仅保留一个Eclipse实例并重试...这就是为什么您会收到Exception的原因,因为“已建立的连接已被您主机中的软件中止了”。 ..go在android adb(Android Debug Bridge)的详细信息中,您将获得它...


2
这些问题可以通过关闭Eclipse并重新启动来解决,因为Eclipse失败了,无法与Emulator建立连接,所以在某些情况下会发生这些问题……
kamal_tech_view 2011年

11
我的问题是2个Eclipse实例正在运行!
马特

8
或者,使用Android Studio和Eclipse。:)
Oleg Vaskevich 2014年

19

我也遇到这些错误,感到很沮丧。阅读并尝试了以上两个答案后,我仍然遇到错误。

但是,我检查了任务管理器的“进程”选项卡,以找到UI并未显示为正在运行的流氓副本“ eclipse.exe * 32”。我猜这应该是显而易见的,因为错误确实表明仿真器/电话无法连接的原因是因为它已经与第二个副本建立了连接。

长话短说,在通过PC重新启动之前,请通过任务管理器确保没有其他Eclipse实例在运行!


1
还要检查是否没有剩余的仿真器进程
Michael

10

如果您使用连接到AVD的多个IDE或其他程序进行开发,则也应尝试关闭它们。

如果为NBAndroid设置,Netbeans也会与Eclipse产生冲突。


6

我遇到了多个IDE的问题。关闭Eclipse,从任务管理器中终止或重新启动均无济于事。刚刚删除了AVD,然后再次创建了它。


6

解决方案:-

  1. 我在打开两个日食窗口时遇到了相同的错误,因此我关闭了一个日食窗口并再次运行该应用程序。您不会收到错误。

  2. 如果仅打开一个月食窗口,请重新启动(关闭并开始)月食。


如何运行两个月食实例..?
Chaitanya 2014年

1
只需从同一个Eclipse图标启动两个不同的工作区,它将为您提供两个Eclipse实例。
Nikhil Kumar 2014年

3

如果您有两个设备同时连接到计算机,则可能会出现此问题。Adb不支持通过命令/控制台访问两个设备。因此,如果在连接和断开第二台设备后调试应用程序,则很可能会遇到此问题。一种解决方案可能是在必要时重新启动adb和/或eclipse。有时可能很烦人,我担心没有其他解决办法。


3

一次打开Android Studio和Eclipse时,也可能会出现此问题。尝试关闭其中一个,它可能会解决您的问题。


2

就我而言,我一次运行的是Android StudioEclipse。AS和Eclipse试图通过adb通信设备/仿真器。

解决方案:我关闭了Android Studio。然后,我重新启动了Eclipse。

希望这对您有所帮助:)


1

关闭仿真器(如果已打开)。右键单击您的项目->运行方式->运行配置->运行。启动仿真器后:右键单击项目->运行方式-> android项目。


1

并行运行Android Studio 2.1.x和Android Studio 2.2.x时,我在Windows 7 64位开发计算机上遇到了此问题。

前一天,我已经通过2.2.x实例部署了一个应用程序,并保持该IDE的运行状态。第二天,我部署了一个不同于2.1.x IDE的应用程序,这是我遇到问题的时间。

关闭两个IDE,然后重新启动2.1.x IDE,为我解决了该问题。


0

重新启动Eclipse将解决问题并杀死“ adb断开连接”,然后杀死“ adb kill-server”


0

在Windows机器上,我想避免重新启动,但这些操作不起作用:* / android / adt-bundle-windows / sdk / platform-tools / adb kill-server * / android / adt-bundle-windows / sdk / platform-工具/ adb启动服务器

因此,使adb重新运行而又没有出现此错误的方法是

  1. 等待TIME WAIT完成,这花费了几分钟。您可以使用以下命令查看端口的状态并查看何时重新启动调试器:“ PortQryV2 / PortQry.exe -local”此工具在此处下载:http : //support.microsoft.com/? id=832919

  2. 用“ netsh int tcp reset”强制关闭端口


0

对我唯一有效的方法(在Windows下)是以管理员身份重新打开IDE。此后,所有工作均顺利进行。



0

在手机上运行Eclipse Luna并使用WifiADB应用程序从Eclipse运行我的应用程序时,我开始收到此错误。奇怪的是,在Indigo(我昨晚安装了Luna)中,它的工作正常。

对我来说,问题是我将手机连接到PC上进行充电,即使运行.bat脚本杀死ADB时,运行时似乎也启动了第二个实例。通过wifi调试时,将手机插入显示器即可充电。有时我需要在wifi上调试,以测试我的应用在电源状态更改时停止/启动的情况。

当然,假设(很有可能)我没有将Luna设置为相同是合理的。


-2

我有这个问题。我尝试过的事情:

  1. 重新启动Eclipse
  2. 如此处所述重新启动Eclipse&Kill adb。
  3. 重新启动机器并打开Eclipse

这对我有用

  1. 关闭(拔出插头)我的android设备,重新启动机器,打开android设备。

希望这对某人有帮助!



-2
  1. 关闭Eclipse
  2. 打开任务管理器并杀死adb.exe
  3. 启动Eclipse应该可以。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.