Android Studio无法在设备上运行项目?

9
我遇到了以下错误。我在互联网上找不到这种情况发生的原因。
ddms: Can't bind to local 8601 for debugger
ddmlib: Broken pipe
java.io.IOException: Broken pipe
    at sun.nio.ch.FileDispatcher.write0(Native Method)
    at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:29)
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:69)
    at sun.nio.ch.IOUtil.write(IOUtil.java:40)
    at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:336)
    at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
    at com.android.ddmlib.Client.sendAndConsume(Client.java:675)
    at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:342)
    at com.android.ddmlib.Client.requestAllocationStatus(Client.java:521)
    at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:847)
    at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:815)
    at com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:775)
    at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:664)
    at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:46)
    at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:592)

ddmlib: Broken pipe
java.io.IOException: Broken pipe
    at sun.nio.ch.FileDispatcher.write0(Native Method)
    at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:29)
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:69)
    at sun.nio.ch.IOUtil.write(IOUtil.java:40)
    at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:336)
    at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
    at com.android.ddmlib.Client.sendAndConsume(Client.java:675)
    at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:342)
    at com.android.ddmlib.Client.requestAllocationStatus(Client.java:521)
    at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:847)
    at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:815)
    at com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:775)
    at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:664)
    at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:46)
    at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:592)

注意:
我的设备是运行5.0.2的Nexus
我的Android Studio版本是1.0.1
我的平台是Mac Mavericks
我只是想运行登录模板应用程序,没有其他要求。
谢谢。

2
有时候我会遇到同样的错误,但是只有在我同时打开AndroidStudio和Eclipse时才会出现。所以我必须关闭两个软件,只打开AS或者Eclipse中的一个才能被识别。 - Shudy
1
@Shudy - 谢谢,很有帮助。 - Vivo
8个回答

12
adb kill-server

然后

adb start-server

对我很有效!


9

重新启动你的电脑并检查。

如果你使用的是Linux系统,请尝试使用以下命令关闭端口:

fuser -k 8601/tcp

如果你使用的是Mac系统,请尝试使用以下命令关闭端口:

lsof -P | grep '8601' | awk '{print $2}' | xargs kill

这里是OSX系统的参考链接


当我在终端尝试时,出现以下错误:“未知选项:k”,似乎在Unix环境中会有所帮助。 - Vivo
5
这是一个在OSX操作系统下的命令,意思是查找所有正在使用端口号为8601的进程,并将其进程ID打印出来,然后使用该ID关闭这些进程。具体命令如下:lsof -P | grep '8601' | awk '{print $2}' | xargs kill - Vivo

9

你可能同时打开了Android Studio和Eclipse

  • 关闭两个应用程序,只打开你要使用的一个。

  • 如果这没有解决问题,那么该端口被其他应用程序使用,请重启系统。

  • 否则,如果问题仍然存在,可以使用命令杀死该端口。


即使您打开了基于Eclipse的程序,即使独立的Eclipse程序没有打开,这也是适用的。对我来说,罪魁祸首是基于Eclipse的“b-folders”(一个用于保管密码和笔记的不知名程序)。 - Elias Mossholm

8

这个异常并不是很严重。你只需要从端口上拔掉USB电缆,重启设备和Android Studio即可。相信这个异常会被解决。这对我有用,希望对你也有帮助。


4

这只是系统的一个愚蠢问题,似乎无法找到本地主机。请参考这里,许多人都有这个问题,而且很容易解决。


4

我使用的是 OS X 10.9.5 操作系统。有时我也会遇到这个错误。通常我会先断开设备 -> 重新启动adb(或者退出android studio然后再次启动)->连接设备 -> 再次运行。(确保你没有从其他的eclipse/studio中运行了adb)

看看这是否对你有帮助。


1

对我来说,简单地使用adb kill-server就解决了这个问题。


0

我尝试了以上所有的解决方案:重新启动工作室、重新启动设备、杀死所有工作室进程、杀死监听端口......

最终唯一有效的方法是选择文件 -> 清除缓存 / 重启...

此外,更换USB电缆也可能有所帮助...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接