Есть ли способ получить трассировку стека этой ошибки, вызывая пакет обслуживания Broken pipe? - PullRequest
0 голосов
/ 04 сентября 2018

Я пытался запустить свое приложение на устройстве Android с помощью Android Studio, в противном случае оно работает нормально, но в этом случае некоторые данные были удалены с моего мобильного телефона, и хотя этот процесс еще не был завершен, студия Android пыталась установите и запустите приложение, из-за которого мой телефон на некоторое время застрял и перезапустился.

Итак, я хотел бы знать, есть ли способ получить полную трассировку стека ошибки, и означает ли это, что мое приложение , вероятно, не должным образом структурировано и уничтожено в середине важного процесс

Спасибо.

Это ошибка, которую я получил в то время:

Установка не удалась с сообщением Не удалось завершить сеанс: неизвестно сбой (cmd: сбой вызова сервисного пакета: сломанный канал (32)).

Это Возможно, эта проблема решена путем удаления существующего версия apk, если она есть, а затем переустановка.


PS : Я не спрашиваю, как решить эту ошибку, потому что мое приложение работает, я хочу понять, что могло вызвать его.

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Просто для уточнения:

Что именно означает ошибка Broken Pipe?

Это означает, что когда процесс запрашивает вывод в канал или сокет, который был закрыт пэром.

Итак, в соответствии с ошибкой в ​​ Android Studio заключается в том, что Gradle Deamon пытался выполнить команду adb для установки (push) последнего создания .apk file (запись пакета приложения через сокет с использованием протокола tcpip) , но adb теряет соединение с устройством, так что Gradle не смог выполнить команду.

Иногда плохое / плохое соединение с устройством вызывает такую ​​проблему.

(В некоторых случаях обновленное incremental dex не записывается на устройство, а .apk повреждается из-за устаревшего dex и поэтому предупреждает о необходимости переустановки apk путем удаления старого.)

Теперь, если вам не удалось получить logcat из окна Android Studio 'Logcat', вы все равно можете получить отчет об ошибке / logcat, используя эту команду в терминале

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

или используйте

adb logcat

посмотреть журнал устройства

Для получения подробного или отфильтрованного журнала: ссылка

Это не имеет никакого отношения к вашему запросу: (означает ли это, что мое приложение, вероятно, неправильно структурировано и уничтожено в середине важного процесса?)

Итак, все будет отлично, как только вы перезапустите (переустановите) ваш .apk

0 голосов
/ 07 сентября 2018

означает ли это, что мое приложение, вероятно, неправильно структурировано и уничтожено в середине важного процесса?

Ну, я думаю, не о чем беспокоиться, так как вы упоминаете, что ваше приложение работает нормально. Я думаю, что мы не должны искать проблему в вашем приложении. Поскольку он работает нормально, он также должен быть хорошо закодирован.

Студия Android пыталась установить и запустить приложение

Вот и мы! Это чисто предположение, но я думаю, что проблема была в Android Studio. Когда вы разрабатываете приложение, каждый раз, когда вы вносите изменения, Android Studio перезапускает приложение. Это так называемый мгновенный пробег : https://developer.android.com/studio/run/#ir-limitations

Я разработал множество нативных приложений и никогда не получал удовольствие от мгновенного запуска. В редких случаях это искажало мое приложение. Пользовательский интерфейс не перезагрузился должным образом и получил несколько проблем. Поэтому, когда я сейчас разрабатываю мобильные приложения, я просто отключаю мгновенный запуск.

Я упоминаю мгновенный запуск, поскольку он мог сломать ваше приложение, когда он был занят выполнением некоторых операций ввода-вывода. С вашей стороны это неплохо, но я бы порекомендовал вам тестировать и разрабатывать без использования мгновенного запуска. Без мгновенного запуска вы гарантированно установите на свой телефон полностью скомпилированное приложение. Это будет или должно также предотвратить эту проблему в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...