我有一个初学者的问题,我想调试我的应用程序,但我不知道如何正确使用Logcat。
目前,我收到此错误,我不知道这意味着什么。
我如何使用此信息?我可以看的地方有教程吗?
谢谢你的帮助。
09-23 11:27:55.968: E/AndroidRuntime(807): FATAL EXCEPTION: main
09-23 11:27:55.968: E/AndroidRuntime(807): java.lang.NullPointerException
09-23 11:27:55.968: E/AndroidRuntime(807): at com.uniqueapps.runner.Start.onClick(Start.java:49)
09-23 11:27:55.968: E/AndroidRuntime(807): at android.view.View.performClick(View.java:4240)
09-23 11:27:55.968: E/AndroidRuntime(807): at android.view.View$PerformClick.run(View.java:17721)
09-23 11:27:55.968: E/AndroidRuntime(807): at android.os.Handler.handleCallback(Handler.java:730)
09-23 11:27:55.968: E/AndroidRuntime(807): at android.os.Handler.dispatchMessage(Handler.java:92)
09-23 11:27:55.968: E/AndroidRuntime(807): at android.os.Looper.loop(Looper.java:137)
09-23 11:27:55.968: E/AndroidRuntime(807): at android.app.ActivityThread.main(ActivityThread.java:5103)
09-23 11:27:55.968: E/AndroidRuntime(807): at java.lang.reflect.Method.invokeNative(Native Method)
09-23 11:27:55.968: E/AndroidRuntime(807): at java.lang.reflect.Method.invoke(Method.java:525)
09-23 11:27:55.968: E/AndroidRuntime(807): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
09-23 11:27:55.968: E/AndroidRuntime(807): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-23 11:27:55.968: E/AndroidRuntime(807): at dalvik.system.NativeStart.main(Native Method)
09-23 11:27:59.528: I/Process(807): Sending signal. PID: 807 SIG: 9
09-23 11:28:01.108: D/gralloc_goldfish(877): Emulator without GPU emulation detected.
09-23 11:54:55.318: D/gralloc_goldfish(937): Emulator without GPU emulation detected.
09-23 11:54:57.887: I/Choreographer(937): Skipped 35 frames! The application may be doing too much work on its main thread.
09-23 11:55:03.118: D/dalvikvm(937): GC_FOR_ALLOC freed 89K, 7% free 2928K/3136K, paused 39ms, total 72ms
09-23 11:55:05.858: D/AndroidRuntime(937): Shutting down VM
09-23 11:55:05.858: W/dalvikvm(937): threadid=1: thread exiting with uncaught exception (group=0x414c4700)
09-23 11:55:05.868: E/AndroidRuntime(937): FATAL EXCEPTION: main
09-23 11:55:05.868: E/AndroidRuntime(937): java.lang.NullPointerException
09-23 11:55:05.868: E/AndroidRuntime(937): at com.uniqueapps.runner.Start.onClick(Start.java:49)
09-23 11:55:05.868: E/AndroidRuntime(937): at android.view.View.performClick(View.java:4240)
09-23 11:55:05.868: E/AndroidRuntime(937): at android.view.View$PerformClick.run(View.java:17721)
09-23 11:55:05.868: E/AndroidRuntime(937): at android.os.Handler.handleCallback(Handler.java:730)
09-23 11:55:05.868: E/AndroidRuntime(937): at android.os.Handler.dispatchMessage(Handler.java:92)
09-23 11:55:05.868: E/AndroidRuntime(937): at android.os.Looper.loop(Looper.java:137)
09-23 11:55:05.868: E/AndroidRuntime(937): at android.app.ActivityThread.main(ActivityThread.java:5103)
09-23 11:55:05.868: E/AndroidRuntime(937): at java.lang.reflect.Method.invokeNative(Native Method)
09-23 11:55:05.868: E/AndroidRuntime(937): at java.lang.reflect.Method.invoke(Method.java:525)
09-23 11:55:05.868: E/AndroidRuntime(937): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
09-23 11:55:05.868: E/AndroidRuntime(937): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-23 11:55:05.868: E/AndroidRuntime(937): at dalvik.system.NativeStart.main(Native Method)
09-23 11:55:09.657: D/gralloc_goldfish(961): Emulator without GPU emulation detected.
09-23 12:04:20.418: D/gralloc_goldfish(1006): Emulator without GPU emulation detected.
09-23 12:04:27.118: D/dalvikvm(1006): GC_FOR_ALLOC freed 96K, 7% free 2919K/3136K, paused 40ms, total 72ms
09-23 12:04:30.337: D/AndroidRuntime(1006): Shutting down VM
09-23 12:04:30.357: W/dalvikvm(1006): threadid=1: thread exiting with uncaught exception (group=0x414c4700)
09-23 12:04:30.397: E/AndroidRuntime(1006): FATAL EXCEPTION: main
09-23 12:04:30.397: E/AndroidRuntime(1006): java.lang.NullPointerException
09-23 12:04:30.397: E/AndroidRuntime(1006): at com.uniqueapps.runner.Start.onClick(Start.java:49)
09-23 12:04:30.397: E/AndroidRuntime(1006): at android.view.View.performClick(View.java:4240)
09-23 12:04:30.397: E/AndroidRuntime(1006): at android.view.View$PerformClick.run(View.java:17721)
09-23 12:04:30.397: E/AndroidRuntime(1006): at android.os.Handler.handleCallback(Handler.java:730)
09-23 12:04:30.397: E/AndroidRuntime(1006): at android.os.Handler.dispatchMessage(Handler.java:92)
09-23 12:04:30.397: E/AndroidRuntime(1006): at android.os.Looper.loop(Looper.java:137)
09-23 12:04:30.397: E/AndroidRuntime(1006): at android.app.ActivityThread.main(ActivityThread.java:5103)
09-23 12:04:30.397: E/AndroidRuntime(1006): at java.lang.reflect.Method.invokeNative(Native Method)
09-23 12:04:30.397: E/AndroidRuntime(1006): at java.lang.reflect.Method.invoke(Method.java:525)
09-23 12:04:30.397: E/AndroidRuntime(1006): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
09-23 12:04:30.397: E/AndroidRuntime(1006): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-23 12:04:30.397: E/AndroidRuntime(1006): at dalvik.system.NativeStart.main(Native Method)
09-23 12:04:33.918: D/gralloc_goldfish(1030): Emulator without GPU emulation detected.
看到之后
FATAL EXCEPTION: main
您将看到问题,在这里 NPE
09-23 11:27:55.968: E/AndroidRuntime(807): java.lang.NullPointerException
然后找到引用您的应用的第一行。这是下一行
at com.uniqueapps.runner.Start.onClick(Start.java:49)
这是说,在Start.java
事情是null
在onClick()
在第49行那么你去到该行并看看有什么 可以
是null
…像一个变量,它试图访问的方法,例如setText()
,getText()
或任何Android或用户定义的方法。有时原因很简单null
,有时您必须追溯到更远的地方才能了解它的成因null
。
编辑
如果是变量,null
则是因为它没有正确初始化,或者根本没有初始化。因此,也许您有一个变量,TextView tv;
但您从未通过执行类似操作来赋予它一个值
tv = (TextView) findViewById(R.id.myTV);
如果您尝试执行类似的操作tv.setText("Some Text");
,则会得到一个a,NPE
因为您未使用上述代码行将其初始化。或者,也许您试图对其进行初始化,并使用了错误的错误(id
例如来自另一个)layout
。这将返回null
并NPE
以相同方式创建一个。它可以在您尝试对其调用方法的任何变量上。
WorkerMan3.0有两种运行模式,调试模式以及daemon运行模式 运行 php start.php start 进入调试模式,这时代码中的echo、var_dump、var_export等函数打印会在终端显示。注意以php start.php start运行的WorkerMan在终端关闭时所有进程会退出。 而运行 php start.php start -d则是进入daemon模式,也就是
调试是一个程序猿非常重要的能力,人写的程序总会有 bug,所以需要 debug。如何方便和快速的定位 bug,是我们讨论的重点,只要 bug 能定位,解决就不是问题。 对于熟悉用 Visual Studio 和 Eclipse 这些强大的集成开发环境的来做 C++ 和 Java 的同学来说,OpenResty 的 debug 要原始很多,但是对于习惯 Python 开发的同学来说,又是那么的熟悉。
调试 我试图用VS代码调试Angular2打字稿应用程序https://angular.io/guide/quickstart 有人能分享调试步骤吗
Git 有一些命令可以用来帮你调试你代码中的问题。 包括找出是什么时候,是谁引入的变更。 git bisect git bisect 工具是一个非常有用的调试工具,它通过自动进行一个二分查找来找到哪一个特定的提交是导致 bug 或者问题的第一个提交。 仅在 二分查找 一节中完整的介绍了此命令。 git blame git blame 命令标注任何文件的行,指出文件的每一行的最后的变更的提交及谁是那
本地日志(Local Logs) 如果你拥有设备的访问权限,你可以使用 adb logcat 或你的 IDE 查看一些日志。你可以使用 adb shell setprop log.tag.<tag_name> <VERBOSE|DEBUG> 操作为任何下面提到的标签(tag))开启日志。VERBOSE 级别的日志会显得更加冗余但包含更多有用的信息。根据你要查看的标签的不同,你可以把 VERBOSE
WARNING weex-toolkit 是三方插件, 不由 Apache Weex 开发或维护。 本文档主要演示如何使用 weex-toolkit 中内置的调试工具进行代码调试。 安装 首先需要通过 npm 或 yarn 安装 weex-toolkit 工具 $ npm i weex-toolkit@beta -g $ weex -v // 检查是否安装成功 运行 安装完成后,运行 weex
Visual Studio Code的一个很重要的特性是他很棒的调试支持。VS Code的内置调试器帮助加速你的编辑,编译和调试循环。 One of the key features of Visual Studio Code is its great debugging support. VS Code's built-in debugger helps accelerate your edit
Atom拱了一些工具来帮助你理解预料之外的行为和调试问题。这篇指南介绍了一些工具和方法用于帮助你调试,以及提供了一些提交工单(issue)时的帮助信息。 升级到最新版本 你可能遇到了在最新版本已经修复的问题。 如果你从源码中编译Atom,需要拉回(pull)master的最新版本并重新构建。 如果你使用发布版本,检查你所使用的Atom是什么版本: $ atom --version 0.178.0-