2013-09-23 99 views
1

我有一个初学者的问题,我想调试我的应用程序,我不知道如何正确使用Logcat。Eclipse 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. 
+0

东西就行'49空Start.java'。 – Raghunandan

+0

给我们Start.java的代码 –

+0

检查Start.java天气的第49行有些东西是空的,或者发布Start.java的完整代码 –

回答

3

后,你看到

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东西是onClick()在49行null所以你去到该行,看看可能null ......就像试图给一个变量访问诸如setText(),getText()或任何Android或用户定义的方法的方法。有时候这很简单,为什么它是null,有时你必须追溯到什么原因才能看到null

编辑

如果一个变量是null那是因为它尚未正确初始化或在所有。因此,也许你有一个变量TextView tv;但你永远不会做这样的事情

tv = (TextView) findViewById(R.id.myTV); 

给它一个值,如果你试图做类似tv.setText("Some Text");你会得到一个NPE因为你没有的东西,如上面的初始化代码行。或者,也许你试图初始化它,并使用了不同的layout之类的错误id。这将返回null并以相同的方式创建NPE。这可以在您尝试调用方法的任何变量上。

+0

真的很棒的信息。当某些内容为空时,是因为代码中拼写错误,还是代码完全错误,因此它会发送空值? – Niller

+0

对不起,我应该解释一下。看我的编辑到我的答案。这意味着它没有给出一个值或尝试过,它的值是'空'。 – codeMagic

+0

非常有用,非常感谢。 – Niller

0

它说这是NullPointerException在Start.java文件的第49行。

Logcat允许您从左侧平移过滤所有日志。这是那边最好的事情。

0

你可以试试这个技巧使用的logcat ..

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    System.out.println("1. Before Declare"); 

    textView = (TextView) findViewById(R.id.textView); 

    System.out.println("2. After Declare"); 

} 

参见导致在logcat中,然后就可以看到你的脚步..