未知故障(cmd:调用服务包失败。管道破裂(32))

问题描述 投票:5回答:2

我试图使用Android Studio在我的Android设备上运行我的应用程序,其他情况下它运行得很好,但在这种情况下,我的手机中的一些数据正在被删除,当这个过程还没有完成时,Android studio试图安装和运行应用程序,这导致我的手机卡住了一段时间并重新启动。

所以我想知道是否有办法获得错误的全栈跟踪,这是否意味着我的应用是 未必 结构合理,却在重要的过程中被杀?

谢谢你。

这是我当时得到的错误。

安装失败,消息是Failed to finalize session : Unknownfailure (cmd:Failure calling service package. Broken pipe (32)): 破损的管道(32))。

这个问题有可能通过卸载现有版本的apk来解决,如果它是存在的,然后重新安装。


PS:如果有的话,可以通过卸载现有版本的apk,然后重新安装来解决这个问题。 : 我不是在问如何解决这个错误,因为我的应用程序运行,我想了解可能是什么原因造成的。

java android scheduled-tasks interop
2个回答
1
投票

只是想澄清一下 :

Broken Pipe错误到底是什么意思?

它的意思是当一个进程请求输出到管道或套接字时,该管道或套接字被对等体关闭了。

所以,根据这里的错误 安卓工作室 就是 Gradle Deamon 试图执行 adb 命令来安装 (推) 最新生成 .apk 档案 (使用tcpip协议通过socket编写应用程序包) 但adb与设备的连接丢失,导致Gradle无法执行命令。

有时,设备的连接松动会导致这种问题。

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

现在,如果你没有抓住 木猫 从Android Studio的 "Logcat "窗口,那么你仍然可以在终端使用这个命令来获取bug reportlogcat。

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

或使用

adb logcat

查看设备日志

用于抓取详细或过滤的日志。链接

这和你的疑问没有关系。(这是否意味着我的应用程序可能没有正确的结构,在一个重要的过程中被杀死了?)

所以,一旦你重新运行了 (重新安装) 你的 .apk


1
投票

这是否意味着我的应用程序可能没有适当的结构,并在一个重要的过程中被杀死?

好吧,既然你提到你的应用程序运行正常,我想也不用太担心。我觉得我们不应该在你的应用中寻找问题。既然运行正常,应该也是编码正常。

安卓工作室在尝试安装和运行应用时

这下好了! 这纯属猜测,但我认为是Android Studio的问题。当你在开发一个应用时,每当你进行修改时,Android Studio就会重启应用。这就是所谓的 速溶: https:/developer.android.comstudiorun#ir-limitations。

我开发了很多原生应用,但我从来没有享受过即时运行。在极少数情况下,它使我的应用程序畸形。UI不能正常重载,并且出现了一些问题。所以现在每当我开发移动应用时,我都会禁用即时运行。

我之所以提到即时运行,是因为它可能在你的应用程序忙于进行一些IO操作的时候把它弄坏了。从你这边来说,这并不是坏事,但我建议你暂时不用即时运行进行测试和开发。如果不使用即时运行,你保证会在手机中安装一个完整的编译过的应用程序。这样或应该也能避免你以后出现这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.