Как интерпретировать Logcat

Может кто-нибудь сказать мне, как я должен читать ошибки в Logcat? Я хотел бы понять, где моя проблема.

В данный момент я пытался прочитать это, но не могу найти причину сбоя.

Вот Logcat, я не понимаю:

05-18 18:29:44.160: ERROR/AndroidRuntime(2145): FATAL EXCEPTION: main
05-18 18:29:44.160: ERROR/AndroidRuntime(2145): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.paad.whereami/com.paad.whereami.WhereAmI}: java.lang.NullPointerException
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at android.os.Looper.loop(Looper.java:130)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at android.app.ActivityThread.main(ActivityThread.java:3683)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at java.lang.reflect.Method.invokeNative(Native Method)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at java.lang.reflect.Method.invoke(Method.java:507)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at dalvik.system.NativeStart.main(Native Method)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145): Caused by: java.lang.NullPointerException
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at com.paad.whereami.WhereAmI.updateWithNewLocation(WhereAmI.java:290)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at com.paad.whereami.WhereAmI.onCreate(WhereAmI.java:216)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)

2 ответа

Вторая "часть" вашего журнала будет важна для вас в данном случае.

Вызванный: java.lang.NullPointerException

Это означает, что где-то в вашем коде что-то установлено null и вы пытаетесь использовать его, как будто это не так.

Следующие несколько строк сообщают вам, где в вашем коде вы можете найти ошибку.

at com.paad.whereami.WhereAmI.updateWithNewLocation(WhereAmI.java:290)
at com.paad.whereami.WhereAmI.onCreate(WhereAmI.java:216)

Это должно означать, что у вас есть метод с именем updateWithNewLocation с которого ты звонишь onCreate в строке 216. Ошибка исходит из этого метода в строке 290. Посмотрите на строку 290 в вашем коде. Все, что вы пытаетесь сделать на этой линии, вызывает исключение, потому что что-то null этого не должно быть.

DOCS

Основным инструментом Android для сбора / анализа логов является logcat.

ЗДЕСЬ есть страница Android о logcat

Если вы используете Android Studio, вы также можете проверить эту ССЫЛКУ.

Захватив

По сути, вы можете вручную захватить logcat с помощью следующей команды (или просто проверить окно AndroidMonitor в AndroidStudio):

adb logcat

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

adb logcat -v time

Вы можете перенаправить вывод в файл и проанализировать его в текстовом редакторе.

Анализ

Ваше приложение падает, и вы получаете сообщение об ошибке, подобное этому:

05-18 18:29:44.160: ERROR/AndroidRuntime(2145): FATAL EXCEPTION: main
05-18 18:29:44.160: ERROR/AndroidRuntime(2145): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.paad.whereami/com.paad.whereami.WhereAmI}: java.lang.NullPointerException
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at android.os.Looper.loop(Looper.java:130)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at android.app.ActivityThread.main(ActivityThread.java:3683)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at java.lang.reflect.Method.invokeNative(Native Method)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at java.lang.reflect.Method.invoke(Method.java:507)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at dalvik.system.NativeStart.main(Native Method)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145): Caused by: java.lang.NullPointerException
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at com.paad.whereami.WhereAmI.updateWithNewLocation(WhereAmI.java:290)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at com.paad.whereami.WhereAmI.onCreate(WhereAmI.java:216)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-18 18:29:44.160: ERROR/AndroidRuntime(2145):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)

Эта часть журнала показывает вам много информации:

когда

Когда возникла проблема: 05-18 18:29:44.160

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

Какое приложение

Приложение, которое упало: com.paad.whereami

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

Какая ошибка

ОШИБКА: java.lang.NullPointerException

Ошибка исключения указателя NULL

Какой файл приводит к этой ошибке

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

Caused by: java.lang.NullPointerException
    at com.paad.whereami.WhereAmI.updateWithNewLocation(WhereAmI.java:290)
    at com.paad.whereami.WhereAmI.onCreate(WhereAmI.java:216)

Произошла ошибка в файле WhereAmI.javaвнутри updateWithNewLocation() метод в строке: 290 (трассировка стека показывает строку, в которой произошла ошибка)

Трассировки стека

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

at com.paad.whereami.WhereAmI.onCreate(WhereAmI.java:216)

так далее....

обзор

Это был просто обзор... Не все журналы просты и т. Д... Это просто для того, чтобы поделиться идеей и предоставить вам информацию начального уровня...

Я надеюсь, что смогу вам как-нибудь помочь... С уважением

Другие вопросы по тегам