2011-08-31 11 views
5

Ho problemi con il debug del mio codice. Uno dei miei AsyncTasks lancia una RuntimeException, ma non so quale linea del mio codice è responsabile per questo. Dato che sono nuovo di Eclipse e Java in generale, tutto ciò mi confonde.Come debuggare correttamente Java (Android) usando Eclipse?

La finestra di debug di Eclipse mi mostra che il mio AsyncTask è stato sospeso a causa di una RuntimeException. Al di sotto di questo, ci sono tre linee che indicano determinate righe di codice. Tuttavia, quelle righe non esistono nel mio codice ed è per questo che non so che cosa causa l'arresto anomalo della mia applicazione. Mi manca qualcosa di essenziale nel debugging in Java/Android?

Queste sono le tre linee che mi viene data, tra l'altro:

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

Come faccio a lavorare con quello? L'aiuto sarebbe molto apprezzato.

+0

Le linee sono stampate nello stacktrace. Usa logcat per visualizzare i messaggi in modo più dettagliato. – Ricky

risposta

1

nel ddms è possibile ottenere il messaggio relativo all'errore, avviso o altro tipo di messaggi nella finestra logcat se non è possibile trovare il logcat nel ddms, quindi andare al menu Finestra-> Mostra vista -> logcat fai clic su di esso e sarai in grado di vedere il messaggio ora nello stesso ddms, avrai anche la finestra del dispositivo da cui selezionare il dispositivo, in modo che tu possa eseguire il debug o ottenere il messaggio da quel dispositivo nel logcat.

ora controllare in questo modo è possibile trovare il dettaglio errore in questo dettaglio logcat

1

Sei meglio utilizzando il logcat - questo mostrerà lo StackTrace e l'errore sollevato. Non ho mai avuto un grande successo passando attraverso il codice a DDMS ma con le errrors indicati nel logcat E 'normalmente piuttosto facile capire il motivo per cui l'errore è stato sollevato.

Vedere la risposta di Pratik per l'apertura del logcat se non è visibile all'interno di Eclipse.

+0

Cant dobbiamo solo riga per il debug linea come abbiamo fatto in Visual Studio? È così irritante usare logcat. – Ubaid

0

Rajeev capito bene - quando si imposta un punto di interruzione un'eccezione, il debugger si romperà sulla linea che getta, non la linea che cattura esso. In questo modo, puoi vedere cosa sta causando l'eccezione.

Problemi correlati