Насколько глубоко в моем коде я должен искать решение проблем с ZygoteInit ANR? - PullRequest
1 голос
/ 03 ноября 2019

Насколько я понимаю, ZygoteInit, указанный в ANR, имеет отношение к запуску приложения, поэтому мой вопрос заключается в том, насколько глубоко в моем коде я должен искать ANR? Application.onCreate()? первый Activity.onCreate()? я должен пройти весь путь до onResume()?

Просто для ясности, ANR с ZygotInit в этом случае вообще не перечисляет мой код, и я не вижу его в других потоках, однако я вижу такие вещи, как настройкибудучи прочитанным, возможно, я смогу найти виновника таким образом. Вот пример https://imgur.com/JYaU9Uo

Следует отметить, что я не могу воспроизвести ни один из этих ANR, они отображаются только на консоли Play Store.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

Трассировка говорит, что ваш основной поток находится в «состоянии ожидания». И место, где происходит ожидание, находится на доступе SharedPreference во время запуска приложения. Это очевидно в строке № 9 вашего следа.

0 голосов
/ 06 ноября 2019

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

Если у вас нет способа воспроизвести вашу проблему и / или нет ссылок на ваше приложение, я не уверен, что мы можем пойти дальше. Почему у вас это есть в ваших отчетах? Из-за характера ANR. Давайте предположим, что это запуск системы (опять же, это не связано с вашим приложением), все приложения пытаются контролировать и распределять ресурсы для запуска своих сервисов. В это время, если ресурса системы недостаточно, ANR будет отправлено каждому процессу, который пытался его получить.

...