Depurar una aplicación Android con Eclipse
Programación y errores de código es un binomio inseparable.
Por lo tanto, resulta fundamental sacar el máximo provechos a las herramientas
de depuración.
Depurar con Eclipse
El plug-in de Android para Eclipse tiene una excelente
integración con el depurador de Eclipse. Introduce un error en tu código
modificando el código fuente de MainActivity
para que en método onCreate
tenga este este código:
Este cambio introduce un NullPointerException en tu código. Si ahora
ejecutas tu aplicación, te aparecerá esto:
Pulsa Force Close para finalizar la aplicación. Para
averiguar más sobre el error, inserta un punto de ruptura (breakpoint) en el
código fuente en la línea Object
o = null; (el breakpoint se introduce haciendo doble clic en la barra de
la izquierda).
Entonces selecciona Run / Debug History / HolaMundo para
ejecutarlo en modo debug. Tu aplicación se reiniciará en el emulador, pero esta
vez quedará suspendida cuando alcance el punto de ruptura que se ha
introducido. Entonces puedes recorrer el código en modo Debug, igual que se
haría en cualquier otro entorno de programación.
Depurar con mensajes
Log
El sistema Android utiliza el fichero LogCat para registrar
todos los problemas y eventos principales que ocurren en el sistema. Ante
cualquier error resulta muy interesante consultarlo para tratar de encontrar su
origen.
La clase Log proporciona un mecanismo para introducir
mensajes desde nuestro código en este fichero. Puede ser muy útil para depurar
nuestros programas o para verificar el funcionamiento del código. Disponemos de
varios métodos para generar distintos tipos de mensajes:
Log.e(): Errors
Log.w(): Warnings
Log.i(): Information
Log.d(): Debugging
Log.v(): Verbose
Ejercicio depurar con mensajes log.
1. Modifica la
clase MainActivity introduciendo la línea que aparece en subrayada:
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d("HolaMundo","Entramos en onCreate");
super.onCreate(savedInstanceState);
Object o = null;
o.toString();
setContentView(R.layout.activity_main);
}
Nota sobre Java: Para poder utilizar la clase Loghas de
importar un nuevo paquete. Para ello añade al principio importandroid.util.Log; Otra alternativa
es pulsar Alt-Intro en
Android Studio o Ctrl-Shift-O en
Eclipse, para que se añadan
automáticamente los paquetes que faltan. En algunos casos, el sistema puede
encontrar dos paquetes con la clase Log, y puede tener dudas sobre cual
importar. En estos casos te preguntará.
2. Ejecuta la
aplicación. Aparecerá un error.
3. Para ver el
fichero LogCat desde
Eclipse, accede al menú Window
> Show View > Others… > Android > LogCat. En Android Studio
aparecerá automáticamente en la parte inferior:

En la primera línea de la captura anterior, comprobamos que
se pudo entrar dentro de onCreate().
Tres líneas más abajo se indica una excepción. La información mostrada
suele ser excesiva. Te recomendamos que busques las palabras “Caused by” para
ver el tipo de excepción y la primera referencia a un paquete escrito por
nosotros, “com.example.jtomas.myapplication”.
En este ejemplo, las dos líneas clave son: “Cased by: java.lang.NullPointerException at
conm.example.jtomas.myapplication.MainActivity.onCreate(MainActivity.java:17)”.
4. Haz clic en (MainActivity.java:17). Te
abrirá la actividad MainActivity
y te situará en la línea donde se ha producido el error. En Eclipse haz
doble clic.