martes, 23 de abril de 2013

Depurar en 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:
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       Object o = null;
       o.toString();
       setContentView(R.layout.activity_main);
   }
Este cambio introduce un NullPointerException en tu código. Si ahora ejecutas tu aplicación, te aparecerá esto:
Archivo:Componentes4.png
Pulsa Force Close para finalizar la aplicación y cerrar la ventana del emulador. 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 paso a paso: Depurar con mensajes Logs

  • Modifica la clase MainActivityintroduciendo la línea que aparece en negrita:
   @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 Log has de importar un nuevo paquete, para ello añade al principio import android.util.Log; Otra alternativa es pulsar Ctrl-Shift-O, para que se añadan automáticamente los paquetes que faltan. En este caso el sistema encuentra dos paquetes con la clase Log, por lo que te preguntará.
  • Ejecuta la aplicación. Aparecerá un error.
    Para ver el fichero de Log desde Eclipse accede al menú Window / Show View / Others… / Android / LogCat.
    Archivo:Componentes5.png
    Como se muestra en la segunda línea de la captura anterior podemos comprobar que se pude entrar dentro de OnCreate. Dos líneas más abajo se produjo 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.holamundo”. En este ejemplo, las dos líneas clave son:
    Archivo:Componentes6.png
  • Haz doble click en la línea at com.example… Te abrirá la actividad MainActivity y te situará en la línea 15.

No hay comentarios:

Publicar un comentario