К сожалению (любое) приложение остановилось. Что я должен сообщить?

28

Когда кто-то получает популярное приложение «такой-то и такой-то», останавливается, вам предлагается сообщить об этом. Что вы должны сказать в «отчете»?

Джеймс Мур
источник

Ответы:

31

Вы хотите, чтобы помочь разработчику, чтобы помочь вам .

В ответе mbanzon упоминалось, что разработчик получит трассировку стека ошибки, но это только говорит нам, что пошло не так и где.

Он ничего не говорит нам о состоянии, в котором находится приложение: какое значение было у этого числа или какой текст был введен в текстовые поля? И самое главное, что именно сделал пользователь, чтобы вызвать сбой приложения?

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

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

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

Если вам не нравится много печатать, вы можете быть коротким:

Нажата кнопка для создания отчета. Экран был пустым.

nhaarman
источник
2
Я бы добавил, что разработчик может только исправлять ошибки в своем приложении. Если в самой ОС есть ошибка (например, множество ошибок глубоко скрыто в WebView), то ничего нельзя сделать, кроме как сообщить об этой проблеме в Google и надеяться, что они исправят ее где-нибудь в дальнейшем. Это происходит примерно в 20% случаев. Было бы хорошо, если бы отчеты о сбоях автоматически отправлялись в правильное место, когда это ошибка на уровне ОС, а не в очереди разработчика приложения ИЛИ если бы был простой способ сообщить о сбое до передачи команде Android без необходимости использовать их система продажи билетов
CubicleSoft
@CubicleSoft А как репортер узнает, это ошибка ОС или нет? Помните, что репортер тоже является частью ОС. Даже разработчики Google не могут что-то сделать, чтобы определить, является ли это ошибкой ОС. Они должны проверить это или воспроизвести вручную. Опять же, сначала отправьте разработчику приложения, не связывайтесь с Google.
EKons
@CubicleSoft Это может быть полезной информацией для любого пользователя, который испытывает сбои на устройстве Android, но на самом деле не входит в сферу этого вопроса.
nhaarman
@ ΈρικΚωνσταντόπουλος Репортер этого не узнает. Тем не менее, Google Play может быть достаточно умным, чтобы посмотреть на трассировку стека и определить, что сбой должен быть распространен на Google, потому что сбой находится за пределами компетенции разработчика. Это только оставило бы соответствующие сбои в очереди разработчика. Текущее состояние дел таково, что бесполезные отчеты о сбоях оказываются в очереди разработчика, с которыми они ничего не могут сделать, потому что они являются ошибками на уровне ОС. Так что пользователи просто продолжают сбои и отчеты, и ничего не меняется. Это эффект Windows Error Reporting (WER).
CubicleSoft
@nhaarman Полезно знать, что даже если вы потратите время на написание отчета о сбое, он может оказаться бесполезным для разработчика, поскольку вы столкнулись с ошибкой, которая существует в ОС, а не в приложении. Как я уже сказал, в настоящее время я вижу это примерно в 20% случаев или в 1 из каждых 5 отчетов о сбоях. Сообщение об ошибке в апстриме в настоящее время слишком сложно / занимает много времени для большинства разработчиков, поэтому они просто нажимают «удалить». Я ударил удалить, как и многие другие разработчики. Часть этой информации может быть включена в ответ, не являясь сдерживающим фактором при отправке отчетов (они по-прежнему полезны, но не всегда полезны).
CubicleSoft
9

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

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

Майкл Банзон
источник
1
Я разработчик. Иногда просто невозможно исправить сбой, потому что я понятия не имею, где он разбился. (Proguard ...). Небольшое сообщение поможет разработчику решить проблему.
Томас Вос
Вы абсолютно правы - все, что пользователи знают о том, что вызвало сбой, и они чувствуют уверенность в написании, может помочь. Просто изменил мой ответ, чтобы подчеркнуть истинное значение ;-)
Майкл Банзон
1
@SuperThomasLab - Даже с Proguard вы все равно можете прочитать / деобушировать трассировку стека, если у вас есть файл сопоставлений, который сообщит вам, где он разбился. Прочтите раздел «Декодирование запутанного стека» в руководстве Proguard: developer.android.com/studio/build/shrink-code.html и это: support.google.com/googleplay/android-developer/answer/6295281
JonasCz - Восстановить Монику
@JonasCz Я знаю, что вы можете декодировать его (Google Play DC делает это для меня), однако, вы все еще не можете получить точную линию, где он упал.
Томас Вос
1
@SuperThomasLab Возможно, вы также сможете сохранить номера строк: Proguard восстановит пропущенные номера строк
JonasCz - Восстановите Монику
4

Как разработчик, я обычно получаю сообщения в духе «Сбой», что никак не помогает. На самом деле я бы посоветовал вам не указывать сообщение, если вы не можете объяснить, как его воспроизвести (например, если вы можете вызвать его сбой, выполнив что-то конкретное в приложении).

Американские разработчики также получают дамп технической информации, которая, как правило, более полезна, чем сообщение о том, где она упала. Например, техническая информация сообщает нам точную строку кода, на которой он упал, и многое другое, что в значительной степени говорит нам, что именно произошло.

В общем, если вам нечего сказать о сбое, просто отправьте его без сообщения, и оно все равно будет таким же полезным.

Уоррик
источник
1

Вы можете проследить свои шаги до момента, когда приложение рухнуло. Например, какое приложение вы использовали до этого приложения? у вас был включен Wi-Fi? хорошее покрытие? срок действия вашего кредита истек при использовании приложения?

user173417
источник