嘗試以下操作:你如何進行調試的Android inEclipse
創建HelloWorld應用程序。
添加日誌語句的onCreate結束:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.d("HelloWorldActivity.onCreate()", "setContentView() completed"); }
放置一個斷點在日誌語句。
運行仿真器中的應用程序,並注意它的工作原理和步驟,看看在Eclipse的logcat的窗口中的記錄條目。
更改HelloWorldActivity從ListActivity代替活動的延伸。
public class HelloWorldActivity extends ListActivity {
- 再次在模擬器中運行應用程序,並注意它無法達到Log語句。
我的問題是不是爲什麼失敗。我的問題是,你將如何去調試這個失敗?我在Eclipse Debug窗格中看到的是RuntimeException。我看到LogCat有一堆消息,但是它很大,我搜索了它,但是找不到任何東西來指示什麼是錯的,或者在我的代碼中發生異常的地方。我找不到在RuntimeException或堆棧跟蹤內顯示消息的方法,以知道哪一行代碼啓動了異常。
我認爲必須有更好的方式來使用這些工具來發現錯誤,但我是新的,似乎無法找出一個更好的辦法,除了在一個try/catch包裝的一切,我的代碼進行調試。我希望能夠在拋出異常時生成LogCat中的消息。我希望調試窗口允許你檢查異常的內容。我並不是說這些技術不存在,我說我很難算作初學者如何進行調試,並詢問有哪些技術存在,以及如何使用它們?
所以,簡單地說:
- 你怎麼會發現這個錯誤,如果你還不知道是什麼造成的呢?
- 你會用什麼技術找出根本原因?
- 你將如何去檢查例外的細節?
- 通常,您如何在使用Eclipse的Android代碼中發現問題?
多的建議和討論的歡迎。 :)
我會包括我logcat的內容,但它是如此之大,這是不合理的。你應該可以很容易地自己再現這個,所以我把它排除了。 LogCat中可能有些東西可以幫助我,但是因爲即使運行一個小程序,它也非常大,所以當遇到API調用拋出的異常時,我需要提示如何搜索以及如何解釋它。我看到其他帖子指出LogCat中應該有一些東西,儘管這可能是真的,但我沒有發現任何東西。如果您認爲LogCat中有某些內容,請自行運行測試,並將這些行復制到我應該找到的響應中。
謝謝。
========
摘要技術名單至今如下:
微創技術: 1.將麪包在代碼中的位置,你想看到你,你已經執行。 2.將try/catch代碼放在你認爲可能引發異常的地方。 3.註釋掉代碼並重新編譯並重新測試。
非侵入性技術: 1.使用調試器。斷點,變量檢驗... 2.猴子壓力測試儀。 3.下載Android源碼庫。 4.使用LogCat過濾器查看是否列出「Caused By」。
不明確(如果可用): 1.調試版本的Android庫有額外的日誌記錄,斷言或其他附加幫助。 2.能夠通過調試窗格或其他技術檢查Eclipse中的異常。 3.一種定義更全局的try/catch異常處理程序的方法。 4.能夠通過Android庫源代碼進行調試。
不可用: 1.一種非侵入性的方式來查看一個異常或異常發生的位置的內容。
對於檢查異常的詳細信息我經常使用的表達窗口在調試模式(窗口>顯示視圖>表達式)檢查值。當檢查異常爲exception.getMesage()並不總是返回一個消息(即null)時,這很方便。在Debug模式下,在斷點處右鍵單擊變量並選擇「watch」。你必須跨過例外來觀看它。 – Emile 2010-11-26 14:24:20
eclipse中的Problems窗口會顯示預編譯時間錯誤以及嚴格警告。 (窗口>顯示視圖>其他...問題) – Emile 2010-11-26 14:25:56
LogCat首先錯過領先。該過濾器適用於消息,而不是您的日誌標籤。要創建自定義過濾器,您應該使用LogCat菜單並選擇「創建過濾器」選項。在這裏,您可以通過標記和PID進行過濾,從而爲您提供更細緻的控制。它也出現在標籤窗口中。非常有用隱藏系統事件。這些消息現在真的幫助了最後的工作,但可能不會告訴你錯誤。所以輕彈回來顯示所有系統事件。 (或通過PID記錄) – Emile 2010-11-26 14:31:01