Как интерпретировать Logcat - PullRequest
15 голосов
/ 20 мая 2011

Может кто-нибудь сказать мне, как я должен читать ошибки в 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 ]

30 голосов
/ 20 мая 2011

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

вызвано: 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 не должно быть.

3 голосов
/ 14 июля 2016

DOCS

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

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

Если вы используете Android Studio, вы также можете проверить это LINK .

Захват

По сути, вы можете Вручную захватить 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 (stacktrace показывает строку, в которой произошла ошибка)

StackTrace

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

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

и т. Д.

Обзор

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

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

...