2011-08-31 28 views
5

我在調試我的代碼時遇到問題。我的一個AsyncTasks拋出一個RuntimeException,但我不知道我的代碼中的哪一行是對此負責的。由於我對Eclipse和Java一般都不熟悉,所有這些都讓我感到困惑。如何使用Eclipse正確調試Java(Android)?

Eclipse的調試窗口顯示我的AsyncTask由於RuntimeException而被暫停。在那之下,有三行指出了某些代碼行。但是,這些行不存在於我的代碼中,這就是爲什麼我不知道導致我的應用程序崩潰的原因。我是否錯過了Java/Android中調試的重要內容?

這些是我給出的三條線,順便說一句:

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

我怎樣與合作?幫助將不勝感激。

+0

這些行是打印的堆棧跟蹤。使用logcat更詳細地查看消息。 – Ricky

回答

1

在ddms中,如果您無法在ddms中找到logcat,則可以將與錯誤,警告或其他類型的消息相關的消息獲取到logcat窗口中,然後轉到菜單Window-> Show View - > logcat點擊它,你現在可以在相同的ddms中看到消息,你也可以從設備窗口中選擇該設備,以便你能夠調試或從該設備獲取消息到logcat中。

現在檢查這種方式,你可以找到你的錯誤的細節到這個logcat的細節

1

你最好使用logcat - 這將顯示堆棧跟蹤和引發的錯誤。我從來沒有成功通過DDMS中的代碼,但是通過logcat中顯示的錯誤,通常很容易找出錯誤發生的原因。

如果在Eclipse中不可見,請參閱Pratik關於打開logcat的答案。

+0

不能像我們在Visual Studio中那樣逐行調試嗎?它只是使用logcat非常惱火。 – Ubaid

0

Rajeev說得對 - 當你在異常上設置一個斷點時,調試器會在引發它的行上中斷,而不是捕獲它的行。通過這種方式,您可以查看導致異常的原因。