java - 未知故障(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:我不是在问如何解决这个错误,因为我的应用程序正在运行,我想了解可能导致它的原因。
解决方案
只是为了澄清一下:
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
推荐阅读
- angular - Ionic4:如何从侧边菜单打开外部链接
- javascript - Django / JS:> 1000个项目的ChoiceField
- c# - 在 ASP.net 中出现错误,但在 Access 中工作正常
- r - 将“YYYY-MM-DD HH:MM”时间戳格式化为日期
- docker - Docker 与共享 Windows 文件夹
- apscheduler - APScheduler ImportError:没有名为 apscheduler.scheduler.background 的模块
- makefile - 获取包含在 Makefile 中的文件的路径
- angular - 如何仅从角度 4 中的订阅中获取最新值
- java - 捆绑多个 java 应用程序
- apache-nifi - 颠簸变换以删除破折号加上更复杂的东西