Android / Google ANR сбой без определенной причины - PullRequest
0 голосов
/ 01 октября 2018

У меня есть следующий отчет о сбое от Android:

> java.lang.RuntimeException:    at
> android.app.ActivityThread.performLaunchActivity
> (ActivityThread.java:2822)   at
> android.app.ActivityThread.handleLaunchActivity
> (ActivityThread.java:2897)   at android.app.ActivityThread.-wrap11
> (Unknown Source)   at android.app.ActivityThread$H.handleMessage
> (ActivityThread.java:1598)   at android.os.Handler.dispatchMessage
> (Handler.java:105)   at android.os.Looper.loop (Looper.java:251)   at
> android.app.ActivityThread.main (ActivityThread.java:6572)   at
> java.lang.reflect.Method.invoke (Native Method)   at
> com.android.internal.os.Zygote$MethodAndArgsCaller.run
> (Zygote.java:240)   at com.android.internal.os.ZygoteInit.main
> (ZygoteInit.java:767)

В моем проекте нет выделенного определенного класса / файла / строки, и нет строки «вызвано», которую обычно можно ожидать, когдаотладка андроида.

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

Мне действительно нужен совет, с чего начать отладку / воссоздание аварии с этой очень ограниченной трассировкой.

Интересно (возможно), что об этом сообщают только на Android 8.0>, но на широкоммассив устройств

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

ANR - сокращение от «приложение не отвечает».На сайте разработчиков Android есть статья об отладке этих здесь .Главное, что нужно понять, это то, что ваше приложение выполняет что-то, что занимает много времени в потоке пользовательского интерфейса.Типичными примерами являются:

  • с использованием сети
  • с использованием диска
  • некоторые интенсивные вычисления
  • доступ к базе данных

Вы знаете, что это происходит в android.app.ActivityThread.performLaunchActivity.

К счастью, Android является открытым исходным кодом, поэтому, если вы используете Google "android source executeLaunchActivity", вы найдете исходный код в качестве верхнего результата .

Вы видите, что это код, который запускает ваше приложение.Итак, что-то при запуске вашего приложения работает очень медленно.Есть много вещей, которые вы можете сделать, чтобы исследовать это:

  • найдите код при запуске вашего приложения, который обращается к диску, сети или базе данных, и переместите его в фоновый поток
  • запустите вашприложение в строгом режиме , которое предупредит вас о плохом поведении
  • , и в статье, приведенной выше, есть много других советов.
0 голосов
/ 01 октября 2018

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

Попробуйте проверить, что,Я думаю, вы можете StrictMode отладить его

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