E/art:向调试器发送回复失败:管道损坏,但应用程序仍在运行

E/art﹕ Failed sending reply to debugger: Broken pipe, but application still runs

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

E/art﹕向调试器发送回复失败:Broken pipe.

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

  1. 检查res文件夹中的文件名颜色 如果名称是颜色,则替换为颜色
  2. 我认为您需要将颜色声明从 strings.xml 中移出并放在 colors.xml

colors.xml

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

终止 "adb" 进程帮助我从这个错误中恢复过来。只需尝试重新启动 adb。

错误是因为没有得到实际数据或class。使用 Android Monitor with Log level Error 并且没有 Regex filter 检查错误。 希望你会得到实际的错误。

您可以执行以下操作:

  • 关闭模拟器和 Android Studio
  • 打开 Android Studio 和 "Rebuild" 基本上删除构建文件夹并重新创建它。

我在 return 语句中有一个断点,当我删除它时 运行 应该的所有内容。所以也试一试(删除所有断点)。

解释错误:

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

什么是E/ART?

ARTAandroid RunTime。这是 Android phone 上的字节码解释器。 E 仅表示 ERROR.

的日志记录级别

什么是“向调试器发送回复”?

Android phone 上的调试是使用 adb(Android 调试桥)完成的。 adb 进程在您的开发机器(您的笔记本电脑或 PC)上运行,守护进程在 Android 设备(即模拟器或手机)上运行。

什么是破管?

您的开发机器和 Android 设备像客户端服务器一样进行通信,管道损坏 意味着通信已失效。例如,客户端(Android 设备)正在尝试向服务器(开发机器上的 adb 进程 运行)发送回复,但服务器已经关闭了套接字。

如何修复

首先通过执行 clean/rebuild.

确保您的应用构建正确

然后,如果您 运行 您的应用在真实 phone 上使用 USB 调试,那么您通常可以通过拔下 USB 数据线然后重新插入以重新建立 client/server连接。

如果这不起作用,您可以断开 USB 数据线(必要时停止模拟器)并关闭 Android Studio。这通常足以停止 adb 进程。然后,当您再次打开 Android Studio 时,它将重新启动并重新建立连接。

如果这不起作用,您可以尝试使用 中的说明手动停止 adb 服务器。例如,您可以尝试打开命令提示符或终端并转到 sdk/platform-tools 目录并键入:

adb kill-server
adb start-server

当我在我的模型 class 中使用对象类型(img 响应)出错时,我遇到了这个错误,而我试图在 Android 中从我的 Url 获得响应.当我修复它时,错误消失了