Tengo una pregunta para principiantes, quiero depurar mi aplicación y no sé cómo usar el Logcat correctamente.
En este momento, estoy recibiendo este error y no sé lo que significa.
¿Cómo puedo usar esta información? ¿Hay algún tutorial en alguna parte que pueda ver?
Gracias por tu ayuda.
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.
Después de ver
FATAL EXCEPTION: main
verá el problema, aquí un NPE
09-23 11:27:55.968: E/AndroidRuntime(807): java.lang.NullPointerException
luego encuentras la primera línea que hace referencia a tu aplicación. Aquí está la siguiente línea
at com.uniqueapps.runner.Start.onClick(Start.java:49)
Esto dice que en Start.java
algo es null
en onClick()
en la línea 49. Así que vas a esa línea y ves lo que podría ser null
… como una variable que intenta acceder a un método como setText()
, getText()
, o cualquier Android o método definido por el usuario. A veces es simple por qué es null
y, a veces, hay que seguir avanzando para ver qué lo hace null
.
Editar
Si una variable es null
es porque no se ha inicializado correctamente, o no se ha inicializado. Entonces quizás tengas una TextView tv;
variable TextView tv;
pero nunca le dio un valor al hacer algo como
tv = (TextView) findViewById(R.id.myTV);
si intenta hacer algo como tv.setText("Some Text");
obtendrá un NPE
porque no lo inicializó con algo como la línea de código anterior. O tal vez trataste de inicializarlo y usaste el id
incorrecto como uno de un layout
diferente. Esto devolverá null
y creará un NPE
de la misma manera. Esto puede ser en cualquier variable que intente llamar un método.
Dice que es NullPointerException en la línea 49 en el archivo Start.java.
Logcat le permite filtrar todos sus registros de la bandeja izquierda. Que es lo mejor de allí.
puedes probar estos consejos para usar 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"); }
Vea el resultado en logcat, luego puede ver su paso …