谁能告诉我如何读取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)
Run Code Online (Sandbox Code Playgroud)
Foa*_*Guy 31
在这种情况下,日志的第二个"部分"对您来说非常重要.
引起:
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不应该.
文档
Android 收集/分析日志的基本工具是 logcat。
这里是关于 logcat 的 Android 页面
如果您使用 android Studio,您还可以查看此LINK。
捕捉
基本上,您可以使用以下命令手动捕获 logcat(或仅检查 AndroidStudio 中的 AndroidMonitor 窗口):
adb logcat
Run Code Online (Sandbox Code Playgroud)
有很多参数可以添加到命令中,这些参数可以帮助您过滤和显示所需的消息......这是个人的......我总是使用下面的命令来获取消息时间戳:
adb logcat -v time
Run Code Online (Sandbox Code Playgroud)
您可以将输出重定向到文件并在文本编辑器中对其进行分析。
分析
您的应用程序崩溃,您收到如下错误:
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)
Run Code Online (Sandbox Code Playgroud)
日志的这一部分向您展示了很多信息:
什么时候
问题发生时: 05-18 18:29:44.160
检查问题发生的时间很重要...您可能会在日志中发现几个错误...您必须确保您正在检查正确的消息:)
哪个应用程序
崩溃的应用程序: com.paad.whereami
这样,您就知道哪个应用程序崩溃了(确保您正在检查有关您的消息的日志)
哪个错误
错误: java.lang.NullPointerException
空指针异常错误
哪个文件导致此错误
通常,我们只读取堆栈跟踪的第一行。但是,您的日志是一个很好的示例,我们需要检查整个日志。在下面的几行中,我们可以看到空指针发生了:
Caused by: java.lang.NullPointerException
at com.paad.whereami.WhereAmI.updateWithNewLocation(WhereAmI.java:290)
at com.paad.whereami.WhereAmI.onCreate(WhereAmI.java:216)
Run Code Online (Sandbox Code Playgroud)
错误发生在文件中WhereAmI.java,updateWithNewLocation()方法内部的行:(290堆栈跟踪显示发生错误的行)
堆栈跟踪
您可以看到调用了哪个方法updateWithNewLocation()。这很有用,因为有时错误是在调用方法时产生的。在你的例子中,它被称为:
at com.paad.whereami.WhereAmI.onCreate(WhereAmI.java:216)
Run Code Online (Sandbox Code Playgroud)
等等....
概述
这只是一个概述......并非所有日志都很简单等等......这只是为了分享想法并为您提供入门级信息......
我希望我能以某种方式帮助你......问候
| 归档时间: |
|
| 查看次数: |
10921 次 |
| 最近记录: |