如何解释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)
    
已邀请:
在这种情况下,日志的第二个“部分”将对您很重要。   造成原因:   
java.lang.NullPointerException
这意味着在代码中的某处将某些内容设置为
null
,并且您尝试使用它,就好像不是。 接下来的几行告诉您在代码中的哪里可以找到错误。   
at com.paad.whereami.WhereAmI.updateWithNewLocation(WhereAmI.java:290)
  
at com.paad.whereami.WhereAmI.onCreate(WhereAmI.java:216)
这应该意味着您有一个名为
updateWithNewLocation
的方法,该方法是从216行中的
onCreate
调用的。错误来自此方法内部的290行。请看一下代码中的290行。无论您试图在那条线上做什么,都会导致异常,因为某些东西应该是
null
。     
DOCS Logcat是Android收集/分析日志的基本工具。 这里是关于logcat的Android页面 如果您使用的是Android Studio,也可以检查此LINK。 捕捉 基本上,您可以使用以下命令来手动捕获logcat(或仅检查AndroidStudio中的AndroidMonitor窗口):
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
中的错误在行
290
updateWithNewLocation()
方法内部发生了(stacktrace显示发生错误的行) 堆栈跟踪 您可以看到哪个方法称为
updateWithNewLocation()
。这很有用,因为有时错误是在调用方法中产生的。在您的示例中,它被称为:
at com.paad.whereami.WhereAmI.onCreate(WhereAmI.java:216)
等等.... 总览 这只是一个概述...并非所有日志都很简单,等等...只是为了分享想法并为您提供入门级信息... 我希望我能有所帮助... 问候     

要回复问题请先登录注册