E / art:无法将回复发送给debugging器:pipe道损坏,但应用程序仍在运行

当我运行我的应用程序时,许多行出现在logcat中,但只有一个错误:

E / art:无法将回复发送给debugging器:pipe道损坏

这是什么意思? 我该如何解决?

解释错误:

E/ART: Failed sending reply to debugger: Broken pipe. 

什么是E / ART?

艺术是一个 ndroid时间。 这是Android手机上的字节码解释器。 E只是表示ERROR的日志级别。

什么是“发送答复到debugging器”?

在Android手机上进行debugging是使用adb (Androiddebugging桥)完成的。 adb进程在您的开发机器(您的笔记本电脑或PC)上运行,而守护进程在Android设备(即仿真器或手机)上运行。

什么是破损的pipe道?

您的开发机器和Android设备像客户端服务器那样通信,并且断开的pipe道意味着通信已经失效。 例如,客户端(Android设备)正试图向服务器发送一个答复(在开发机器上运行的adb进程),但是服务器已经closures了套接字。

如何解决它

首先确保您的应用程序正在通过执行清理/重build正确构build。

然后,如果您在真实的手机上使用USBdebugging来运行您的应用程序,那么您通常可以通过拔下USB电缆来修复问题,然后重新插入以重新build立客户端/服务器连接。

如果这不起作用,您可以断开USB电缆和(如果需要停止模拟器)并closuresAndroid Studio。 这通常足以阻止adb进程。 然后当你再次打开Android Studio时,它将重新启动,连接将重新build立。

如果这不起作用,您可以尝试使用此问题中的说明手动停止adb服务器。 例如,您可以尝试打开命令提示符或terminal,然后进入sdk/platform-tools目录并input:

 adb kill-server adb start-server 

我在return语句中有一个断点,当我删除它时,所有的东西都按照它的意思运行。 所以也试试这个(删除所有的断点)。

杀死“adb”过程帮助我从这个错误中恢复过来。 试试重新启动adb。

您可以执行以下操作:

  • 杀死模拟器和Android Studio
  • 打开Android Studio和“重build”,基本上删除生成文件夹并重新创build它。

错误是因为没有得到实际的数据或类。 使用带有日志级错误的Android监视器,并且不使用正则expression式筛选器来检查错误。 希望你会得到实际的错误。

  1. 如果名称是颜色,请检查res文件夹中的文件名颜色,然后用颜色replace
  2. 我认为你需要将你的颜色声明从strings.xml中移出并放在colors.xml中

colors.xml

 <?xml version="1.0" encoding="utf-8"?> <resources> <color name="myColor">#ccff00</color> </resources>