2012-04-12 63 views
0

我知道有LogCat視圖來檢查記錄的消息,但我無法理解它。當我調試時(我主要使用Java),我習慣於逐行檢查每一行代碼,找出程序崩潰的確切位置,然後做一些事情。如何在Android中成功調試?

我該如何在Android開發中做到這一點?有沒有一種方法來精確定位導致應用程序崩潰的行?

我不明白該怎麼做/如何閱讀LogCat消息,當我嘗試跳過時(使用F9鍵或Eclipse中的「調試」選項),它會不斷打開內置類文件的新選項卡像Instrumentation.class等),並再次按F6幾次後,應用程序崩潰顯示'應用程序意外停止。請再試一次'

有人能告訴我,如果有什麼事情要做,我不在這裏做? 謝謝!

順便說一句,如果有幫助,這裏的生成的日誌: http://pastebin.com/EaqaWUdS

回答

2

您正在使用不以行存在的資源ID:com.site.custom.ModAdapter.getView 93(CustomListProjectActivity.java

- 編輯:補充說明

你會讀到以同樣的方式一個logcat的堆棧跟蹤您在Java做的事:閱讀自下而上而罪魁禍首是你的類的最後一行(代碼進入了前android sdk code)。

你可以用相反的方法做到這一點,並從頂層開始,停在你的第一類並放棄android類。

調試時適用同樣的推理:如果需要,進入您的方法並跨越SDK的所有方法,除非您想調試它們(並且通常您不需要,如果您真的懷疑SDK中有bug,請檢查grepcode的源代碼來查看您感興趣的android sdk類的內部機制)。

有時很難跟蹤android上的錯誤,尤其是與小部件佈局相關的錯誤,因爲您只能看到由android平臺執行的代碼,沒有執行代碼,只有您的數據從xml讀取文件爲例。如果某處出現故障,可能會更難以調試。在這種情況下,應用二分法:刪除半行,如果沒有顯示錯誤,然後讀取你的行,刪除其中的一半,等等......

0

它和java中一樣。基本上你需要源代碼來打開java文件,而不是類文件。 Google會向您展示如何添加來源。

基本上你在自己的課堂上調試android。我幾乎沒有看到android類,因爲大多數問題當然都位於我自己的類中。

所以,就像你已經做的調試,但不要步入你不擁有的方法/類,除非你有源添加到你的SDK。即使你有,也可能有一些類不是開源的,所以你不能在那裏進入源代碼。 (基本上所有Google API類)