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

时间:2011-04-11 08:28:45

标签: android

[2011-04-11 13:27:36 - ddmlib]An established connection was aborted by the software in your host machine
java.io.IOException: An established connection was aborted by the software in your host machine
    at sun.nio.ch.SocketDispatcher.write0(Native Method)
    at sun.nio.ch.SocketDispatcher.write(Unknown Source)
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source)
    at sun.nio.ch.IOUtil.write(Unknown Source)
    at sun.nio.ch.SocketChannelImpl.write(Unknown Source)
    at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
    at com.android.ddmlib.Client.sendAndConsume(Client.java:573)
    at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:349)
    at com.android.ddmlib.Client.requestAllocationStatus(Client.java:419)
    at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:840)
    at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:808)
    at com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:767)
    at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:635)
    at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:42)
    at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:563)

20 个答案:

答案 0 :(得分:120)

关闭Eclipse并重新启动它可以简单地解决这个问题。 Eclipse有时无法与模拟器建立连接,因此在某些情况下可能会发生这种情况。

答案 1 :(得分:69)

签出可能有两个Eclipse实例指向同一个Android SDK ...只保留一个Eclipse实例并再试一次...这就是为什么你得到Exception为“已建立的连接被主机中的软件中止机器“...详细了解android adb(Android Debug Bridge)你会得到它......

答案 2 :(得分:19)

我也遇到了这些错误而且感到难过。 在阅读并尝试上述两个答案后,我仍然收到错误。

但是,我检查了任务管理器的进程选项卡,找到了'eclipse.exe * 32'的流氓副本,该UI没有显示为正在运行。我想这应该是显而易见的,因为错误确实表明模拟器/手机无法连接的原因是因为它已经与第二个副本建立了连接。

简而言之,请确保通过任务管理器在重新启动PC之前没有其他Eclipse实例正在运行!

答案 3 :(得分:10)

如果你开发多个IDE或连接到AVD的其他程序,你也应该尝试关闭它们。

如果你为NBAndroid设置它,Netbeans也会引起与eclipse的冲突。

答案 4 :(得分:6)

解决方案: -

  1. 我在打开两个eclipse窗口时遇到了同样的错误,所以我关闭了一个eclipse窗口并再次运行应用程序。你不会得到错误。

  2. 如果你只打开一个日食窗口,那么再次重启(关闭并启动)日食。

答案 5 :(得分:6)

我遇到了多个IDE的问题。关闭Eclipse,从任务管理器中删除或重新启动没有帮助。刚刚删除了AVD并再次创建它。

答案 6 :(得分:3)

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

答案 7 :(得分:3)

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

答案 8 :(得分:2)

在我的案例中,我一次运行 Android Studio Eclipse 。 AS和Eclipse试图通过 adb 来传达设备/模拟器。

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

希望这可以帮助你:)

答案 9 :(得分:1)

如果已经打开,请关闭模拟器。 右键单击您的项目 - >运行方式 - >运行配置 - >跑。 模拟器启动后:右键单击您的项目 - >运行为 - > android项目。

答案 10 :(得分:1)

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

前一天我通过2.2.x实例部署了一个应用程序,并让该IDE运行。第二天,我在2.1.x IDE中部署了一个不同的应用程序,这是我遇到问题的时候。

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

答案 11 :(得分:0)

重新启动eclipse将解决问题并终止“adb disconnect”然后“adb kill-server”

答案 12 :(得分:0)

在Windows机器上,我想避免重启,这些都不起作用: * / android / adt-bundle-windows / sdk / platform-tools / adb kill-server * / android / adt-bundle-windows / sdk / platform-tools / adb start-server

那么在没有此错误的情况下再次运行adb的工作原理是

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

  2. 使用“netsh int tcp reset”

  3. 强制关闭端口

答案 13 :(得分:0)

对我来说唯一有用的东西(在Windows下)是以管理员身份重新打开IDE。之后一切顺利。

答案 14 :(得分:0)

我通过关闭Eclipse并再次重新启动它来解决了这个问题。 Eclipse有时无法与仿真器/设备建立连接,因此有时会发生这种情况。

答案 15 :(得分:0)

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

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

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

答案 16 :(得分:0)

如果两个软件使用相同的端口,则会出现此问题
一般Android Studio使用端口5037
尝试根据您的操作系统通过cmd关闭端口
然后重新启动您的Android Studio或Eclipse

答案 17 :(得分:-2)

我遇到了这个问题。 我试过的事情:

  1. 重启Eclipse
  2. 重启Eclipse&杀死这里提到的adb。
  3. 重启机器&打开Eclipse
  4. 这对我有用

    1. 关机(拔插)我的Android设备,重启机器,电源 在Android设备上。
    2. 希望这有助于某人!

答案 18 :(得分:-2)

按照这两步 1)adb kill-server 2)adb start-server

这对我有用

答案 19 :(得分:-2)

  1. 关闭Eclipse
  2. 打开任务管理器并终止adb.exe
  3. 启动Eclipse 它应该工作。