Android在LogCat中显示一些指令

时间:2014-04-09 17:12:57

标签: android android-logcat

我是android的初学者。我不懂android LogCat.Please帮帮我。

LogCat有七列。如何每列(级别,时间,PID,TID,应用程序,标记,文本)请告诉我。

请给我一些解释这个错误。什么是工作列(FATAL EXCEPTION:main ||在android.view ||在android.os上)
示例错误:

04-09 17:55:09.033: I/Choreographer(27247): Skipped 31 frames!  The application may be doing too much work on its main thread.
04-09 17:55:09.132: D/gralloc_goldfish(27247): Emulator without GPU emulation detected.
04-09 17:55:10.443: I/Choreographer(27247): Skipped 66 frames!  The application may be doing too much work on its main thread.
04-09 17:55:10.683: D/dalvikvm(27247): GC_FOR_ALLOC freed 74K, 8% free 2573K/2796K, paused 34ms, total 40ms
04-09 17:55:10.773: D/AndroidRuntime(27247): Shutting down VM
04-09 17:55:10.783: W/dalvikvm(27247): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
04-09 17:55:10.803: E/AndroidRuntime(27247): FATAL EXCEPTION: main
04-09 17:55:10.803: E/AndroidRuntime(27247): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
04-09 17:55:10.803: E/AndroidRuntime(27247):    at android.view.ViewRootImpl.setView(ViewRootImpl.java:571)
04-09 17:55:10.803: E/AndroidRuntime(27247):    at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:246)
04-09 17:55:10.803: E/AndroidRuntime(27247):    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
04-09 17:55:10.803: E/AndroidRuntime(27247):    at android.app.Dialog.show(Dialog.java:281)
04-09 17:55:10.803: E/AndroidRuntime(27247):    at android.app.ProgressDialog.show(ProgressDialog.java:116)
04-09 17:55:10.803: E/AndroidRuntime(27247):    at android.app.ProgressDialog.show(ProgressDialog.java:99)
04-09 17:55:10.803: E/AndroidRuntime(27247):    at android.app.ProgressDialog.show(ProgressDialog.java:94)
04-09 17:55:10.803: E/AndroidRuntime(27247):    at com.example.shikkok_services.MainActivity$2.onClick(MainActivity.java:27)
04-09 17:55:10.803: E/AndroidRuntime(27247):    at android.view.View.performClick(View.java:4204)
04-09 17:55:10.803: E/AndroidRuntime(27247):    at android.view.View$PerformClick.run(View.java:17355)
04-09 17:55:10.803: E/AndroidRuntime(27247):    at android.os.Handler.handleCallback(Handler.java:725)
04-09 17:55:10.803: E/AndroidRuntime(27247):    at android.os.Handler.dispatchMessage(Handler.java:92)
04-09 17:55:10.803: E/AndroidRuntime(27247):    at android.os.Looper.loop(Looper.java:137)
04-09 17:55:10.803: E/AndroidRuntime(27247):    at android.app.ActivityThread.main(ActivityThread.java:5041)
04-09 17:55:10.803: E/AndroidRuntime(27247):    at java.lang.reflect.Method.invokeNative(Native Method)
04-09 17:55:10.803: E/AndroidRuntime(27247):    at java.lang.reflect.Method.invoke(Method.java:511)
04-09 17:55:10.803: E/AndroidRuntime(27247):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-09 17:55:10.803: E/AndroidRuntime(27247):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-09 17:55:10.803: E/AndroidRuntime(27247):    at dalvik.system.NativeStart.main(Native Method)

4 个答案:

答案 0 :(得分:1)

级别:LogCat中有五种级别

Log.i:这是一条信息性消息

Log.v:详细

Log.d:调试

Log.e:错误

Log.w:警告

PID :进程ID

TID :主题ID

申请:申请名称

TAG :TAG是用户定义的字符串变量(例如,静态最终字符串TAG =" debug&#34 ;;)

文字:错误文字 请查看here了解更多信息。

答案 1 :(得分:1)

在android中你可以使用log来理解你的代码执行,这里有区别:

  • Log.e:这是为了发生坏事。在地方使用此标记 比如里面的捕获物。你知道并且发生了错误 因此,您正在记录错误。

  • Log.w:当你怀疑有阴影的时候使用它。你可以 在错误模式下不完全完全,但也许你从中恢复 一些意外的行为。基本上,使用它来记录你没有的东西 期望发生,但不一定是错误。有点像"嘿, 这发生了,而且很奇怪,我们应该调查一下。"

  • Log.i:使用此命令将有用信息发布到日志中。例如:
    您已成功连接到服务器。基本上用它来 报告成功。

  • Log.d:用于调试目的。如果你想打印出来 一堆消息,以便您可以记录您的程序的确切流程,使用 这个。如果要保留变量值的日志,请使用此。

  • Log.v:当你想要完全坚持你的时候使用它 日志记录。如果由于某种原因你决定记录每一件小事 在应用的特定部分中,使用Log.v标记。

您可以使用它们,它们可以帮助您跟踪代码,并找到崩溃的位置!或其他什么。

例子:

Log.i("your tag" , "your text");


当该行在您的代码中执行时,它将打印在您的logCar中,您可以看到它。

希望它能帮到你

答案 2 :(得分:0)

请参阅此link以更好地了解DDMS和logcat

我总是从上到下查看log cat,我正在寻找MYCLASS上的第一行,这是错误发生的最后一个位置。

答案 3 :(得分:0)

一般来说,您需要查看的日志猫只有三个部分是

应用程序(抛出错误的应用程序)

标签(您可以在某些情况下设置标签以查看您的错误隐藏的位置,或者它将被设置为安卓系统中引发错误的部分)

文字(这将显示实际错误以及代码中产生的行号)

关于那个特定错误的问题,我们需要查看错误中的所有行来识别它,(通常是红色的消息块)

最后我会留下你的....

Log.d("Tag", "Text");

将其放在您的代码中,并将标记更改为您的名称,将文本更改为您的活动名称,然后运行该程序。当它到达上面的代码时,它会将你的消息打印到log cat ....这是一个很好的方法,可以知道你崩溃时代码中的位置,logcat中哪个日志标记最接近

(您可能需要导入日志)