2011-08-31 20 views
5

Tengo problemas para depurar mi código. Uno de mis AsyncTasks arroja una RuntimeException, pero no sé qué línea de mi código es responsable de esto. Como soy nuevo en Eclipse y Java en general, todo esto me resulta bastante confuso.¿Cómo depurar correctamente Java (Android) usando Eclipse?

La ventana de depuración de Eclipse me muestra que mi AsyncTask se ha suspendido debido a una RuntimeException. Debajo de eso, hay tres líneas que señalan ciertas líneas de código. Sin embargo, esas líneas no existen en mi código y es por eso que no sé qué hace que se cuelgue la aplicación. ¿Me estoy perdiendo algo esencial sobre la depuración en Java/Android?

Estas son las tres líneas que estoy dado, por cierto:

ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1086 
ThreadPoolExecutor$Worker.run() line: 561 
Thread.run() line: 1096 

¿Cómo se supone que trabajar con eso? La ayuda sería muy apreciada.

+0

Las líneas son la pila impresa. Use logcat para ver los mensajes con más detalle. – Ricky

Respuesta

1

en ddms puede obtener el mensaje relacionado con el error, advertencia u otro tipo de mensajes en la ventana de logcat si no puede encontrar el logcat en el ddms y luego vaya al menú Ventana-> Mostrar vista -> logcat haz clic en eso y podrás ver el mensaje ahora en el mismo ddms del que también obtienes la ventana del dispositivo que selecciona el dispositivo para que puedas depurar o recibir el mensaje de ese dispositivo en el logcat.

ahora comprobar esta manera se puede encontrar el detalle de error en los detalles de este LogCat

1

Usted es mejor usar el logcat - esto mostrará el StackTrace y el error generado. Nunca he tenido un gran éxito al recorrer el código en DDMS, pero con los errores que se muestran en el logcat normalmente es muy fácil averiguar por qué se produjo el error.

Consulte la respuesta de Pratik para abrir el logcat si no está visible dentro de Eclipse.

+0

¿No podemos tener depuración línea por línea como en Visual Studio? Es tan irritante usar Logcat. – Ubaid

0

Rajeev lo hizo bien: cuando establece un punto de interrupción en una excepción, el depurador se romperá en la línea que lo arroja, no en la línea que lo atrapa. De esta manera, puede ver lo que está causando la excepción.

Cuestiones relacionadas