intente lo siguiente:¿Cómo se depura Android inEclipse
crear una aplicación HelloWorld.
Añadir una declaración de registro al final de onCreate:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.d("HelloWorldActivity.onCreate()", "setContentView() completed"); }
Coloque un punto de interrupción en la declaración de registro.
Ejecute la aplicación en el emulador y tenga en cuenta que funciona y el paso para ver la entrada registrada en la ventana LogCat de Eclipse.
Cambia HelloWorldActivity para extender desde ListActivity en lugar de Activity.
public class HelloWorldActivity extends ListActivity {
- Ejecute de nuevo la aplicación en el emulador y observe que no puede alcanzar la instrucción de registro.
Mi pregunta NO es por qué esto falla. Mi pregunta es, ¿cómo harías para depurar este error? Todo lo que veo en el panel Eclipse Debug es una RuntimeException. Veo que LogCat tiene un montón de mensajes, pero es enorme y lo he buscado, pero no puedo encontrar nada que indique lo que está mal o en qué parte de mi código se produjo la excepción. No puedo encontrar una manera de mostrar el mensaje dentro de RuntimeException o un seguimiento de pila para saber qué línea de código inició la excepción.
Supongo que debe haber mejores formas de utilizar las herramientas para encontrar errores, pero soy nuevo y no puedo encontrar una mejor manera de depurar, además de ajustar todo lo que codigo en un try/catch. Hubiera esperado encontrar un mensaje en LogCat generado al arrojar la excepción. Hubiera esperado que la ventana de depuración le permitiera inspeccionar los contenidos de la excepción. No estoy diciendo que tales técnicas no existan, estoy diciendo que estoy teniendo problemas para descubrir como principiante cómo depurar y preguntar qué técnicas existen y cómo las uso.
Así, en pocas palabras:
- ¿Cómo encontrar este error si no ya sabe lo que estaba causando?
- ¿Qué técnicas usarías para descubrir la causa raíz?
- ¿Cómo harías para inspeccionar los detalles de la Excepción?
- Generalmente, ¿cómo encuentras problemas en tu código de Android usando Eclipse?
Se aceptan sugerencias y debates. :)
Hubiera incluido mis contenidos de LogCat, pero es tan grande que no es razonable. Deberías poder reproducir esto fácilmente, así que lo dejé fuera. Es posible que algo en LogCat me ayude, pero debido a que es tan grande que incluso ejecuta un programa pequeño, necesitaría una pista sobre qué buscar y cómo interpretarlo cuando toco una excepción lanzada desde una llamada API. Veo otras publicaciones que dicen que algo debería estar en LogCat, que aunque podría ser cierto, no encontraré nada por mi cuenta. Si cree que algo debe estar en LogCat, ejecute la prueba usted mismo y copie las líneas en su respuesta que debería encontrar.
Gracias.
========
lista de técnicas Resumen hasta ahora es la siguiente:
técnicas invasivas: 1. Coloque un brindis en ubicaciones de código en la que desea ver que usted tiene ejecutado. 2. Ponga el código try/catch alrededor donde cree que hay una posibilidad de que se genere una excepción. 3. Comente el código y vuelva a compilar y volver a probar.
Técnicas no invasivas: 1. Utilice el depurador. Puntos de corte, inspección variable ... 2. Comprobador de esfuerzo mono. 3. Descargue la biblioteca de origen de Android. 4. Use los filtros de LogCat para ver si aparece una "Causa por".
No está claro si está disponible: 1. Versión de depuración de la biblioteca de Android que tiene registro adicional, aserciones u otra ayuda adicional. 2. Capacidad para inspeccionar una excepción en Eclipse a través del panel Depurar u otras técnicas. 3. Una forma de definir un controlador de excepción try/catch más global. 4. Posibilidad de depurar a través del código fuente de la biblioteca Android.
No disponible: 1. Una forma no invasiva de ver el contenido de una excepción o donde ocurrió la excepción.
Para inspeccionar los detalles de la excepción que a menudo utilizan la ventana de expresiones en modo de depuración (Ventana> Mostrar vista> Expresiones) para comprobar valores. Esto es útil cuando se comprueba la excepción como exception.getMesage() no siempre devuelve un mensaje (es decir, nulo) En el modo de depuración, mientras que en un punto de interrupción, haga clic derecho sobre la variable y seleccione "mirar". Tienes que pasar por encima de la excepción para verlo. – Emile
La ventana de Problemas en eclipse le mostrará errores de tiempo de precompilación y también advertencias estrictas. (Ventana> Mostrar vista> otros ... Problemas) – Emile
Al principio, LogCat es una señorita líder. El filtro funciona en el mensaje y no en sus etiquetas de registro.Para crear un filtro personalizado, debe usar el menú LogCat y seleccionar la opción "Crear filtro". Aquí puede filtrar por etiqueta y pid para obtener un control mucho más detallado. También aparece en una ventana con pestañas. Muy útil para ocultar eventos del sistema. Estos mensajes realmente ayudan ahora lo que funcionó por última vez, pero es posible que no le muestre el error. así que retroceda para mostrar todos los eventos del sistema. (o log por pid) – Emile