Сбой приложения Android без отображения сбоя в Firebase

Клиенты сообщают, что наше приложение внезапно дает сбой и перезапускается для того же действия.

В основном мы используем Azure Mobile Engagement, и там видны некоторые сбои. Все эти сбои были отслежены до ошибок в коде.

Поскольку клиент по-прежнему сообщал о сбоях, которых мы не видели в Azure Mobile Engagement, мы добавили отчеты о сбоях Firebase, и клиент сообщил, что теперь сбоев стало еще больше, и ничего не отображается ни в Firebase, ни в Azure Mobile Engagement.

При каких обстоятельствах приложение может аварийно завершить работу или выгрузиться без сообщения об этом?


person Mathias Rönnlund    schedule 13.01.2017    source источник


Ответы (1)


Отчеты о сбоях Firebase в настоящее время не могут фиксировать собственные исключения (код C/C++). Другие отчеты о сбоях, которые ведут себя некорректно, также могут помешать его правильной работе.

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

person Doug Stevenson    schedule 13.01.2017
comment
Не могли бы вы прокомментировать, что такое нативные исключения? Мы не сделали никакого собственного кода в нашем приложении, и мне придется проверить это с нашими клиентами, но я готов поспорить, что приложение иногда дает сбой без К сожалению, xxx остановлен. Есть ли способ увидеть, как часто происходят эти сбои и, возможно, что происходило (т.е. какая активность выполнялась), когда произошел сбой. - person Mathias Rönnlund; 16.01.2017
comment
Собственные исключения — это те, которые происходят вне кода Java-приложения. Они могут исходить от самого Android или неправильного использования API Java. Firebase планирует добавить поддержку собственных исключений в будущем. - person Doug Stevenson; 16.01.2017
comment
Каковы все возможные ситуации, когда сбой не отправляется по дизайну? Есть ли какие-то ограничения для эмуляторов или отладочных сборок? - person Tomáš Hubálek; 25.01.2017
comment
@TomášHubálek Клиент всегда будет пытаться отправить любой зафиксированный им сбой, но могут быть ситуации, когда сервер отклоняет его (например, клиенты, которые превышают разумные пределы). Кроме того, если сбой не может быть отправлен в течение некоторого времени (нет подключения к сети) или в очереди слишком много сбоев, некоторые сбои могут быть удалены, чтобы предотвратить чрезмерное хранение. - person Doug Stevenson; 26.01.2017