首页 > 解决方案 > 未知故障(cmd:调用服务包失败:Broken pipe (32))

问题描述

我试图使用 Android Studio 在我的 Android 设备上运行我的应用程序,否则它运行良好,但在这种情况下,一些数据正在从我的手机中删除,虽然该过程尚未完成,但 Android Studio 正在尝试安装和运行导致我的手机卡住一段时间并重新启动的应用程序。

所以我想知道是否有办法获得错误的完整堆栈跟踪,这是否意味着我的应用程序可能结构不正确并在一个重要进程的中间被杀死?

谢谢你。

这是我当时得到的错误:

安装失败并显示消息 Failed to finalize session : Unknown failure (cmd:Failure calling service package: Broken pipe (32))。

此问题可能通过卸载现有版本的 apk(如果存在)得到解决,然后重新安装。


PS:我不是在问如何解决这个错误,因为我的应用程序正在运行,我想了解可能导致它的原因。

标签: javaandroidscheduled-tasksinterop

解决方案


只是为了澄清一下:

Broken Pipe 错误究竟是什么意思?

这意味着当一个进程向管道或套接字请求输出时,它被对等方关闭。

因此,根据Android Studio中的错误,Gradle Deamon试图执行 adb 命令来安装(推送)最新生成.apk文件(使用 tcpip 协议通过套接字写入应用程序包)但 adb 与设备的连接丢失,因此 Gradle 失败执行命令。

有时,与设备的连接松动/不良会导致此类问题。

(在某些情况下,更新incremental dex不会被写入设备,并且.apk由于过时而损坏dex&因此它会警告通过删除旧的来重新安装apk。)

现在,如果您未能从 Android Studio 'Logcat' 窗口中获取logcat ,那么您仍然可以在终端中使用此命令获取错误报告/logcat

adb bugreport 'path to store bug report(optional)'

或使用

adb logcat

查看设备日志

获取详细或过滤的日志:链接

这与您的查询无关:(这是否意味着我的应用程序可能结构不正确并在重要进程中被杀死?)

因此,一旦您重新运行(重新安装)您的.apk


推荐阅读