簡體   English   中英

如何調試Android項目

[英]How to debug Android project

我是Android框架的新手(使用Eclipse),並且對調試有疑問。 最近,我在一個活動中犯了這個錯誤:

// The installation button
Button button = (Button) findViewById(R.id.preparationInstallButtonID);
button.setOnClickListener(this);

setContentView(R.layout.preparation);

即我試圖添加一個onclick事件之前呈現的布局。 這使程序崩潰,“對不起,應用程序xxx意外停止”。 Eclipse在調試模式下再次運行它,Eclipse打開一個調試窗口,其中包含“ Thread <3>(Suspended)”等(我確定您知道我在談論哪個窗口)。

現在,我如何在這里提取有用的數據? 關於上面的問題,我發現了如何通過反復試驗來解決它,但是讓我說我​​無法進行反復試驗,調試窗口如何幫助我找到錯誤的根源? 它說“ exception RuntimeException”,但是在代碼中發生異常的地方我看不到任何指針。

如果要調試:右鍵單擊要調試的代碼部分(在行號處)。 選擇“切換斷點”。

在此處輸入圖片說明

您可以在行號旁邊看到一個小圓圈,即斷點。

在此處輸入圖片說明

然后,進行運行配置,單擊運行圖標旁邊的小箭頭,然后單擊“運行配置..”。

在此處輸入圖片說明

單擊android應用程序,您將看到以下對話框窗口:

在此處輸入圖片說明

閱讀它,“突出顯示”此內容:“按新按鈕創建所選類型的配置”。 單擊選項卡上方的“新建”按鈕,您將看到以下對話框:

在此處輸入圖片說明

填充它,瀏覽您的項目,

在此處輸入圖片說明

例如,我添加了Scrumptious項目,並啟動了默認活動。 單擊目標選項卡,選擇您的模擬器。 如果要在物理設備上運行,請單擊“始終提示選擇設備”。 這次我在物理設備上運行

在此處輸入圖片說明

對於“通用”選項卡,如果您想在“收藏夾”菜單中選擇“調試”或“運行”選項,請選中“顯示”。 它是可選的。 單擊應用。

在此處輸入圖片說明

點擊調試圖標-並選擇您的項目。 如果您在“收藏夾”菜單中的“顯示”上激活“調試”,則項目將顯示在調試選項菜單中。

在此處輸入圖片說明

我選擇“始終提示選擇設備”,將顯示此對話框。 我想在物理設備上運行,所以我在“選擇正在運行的Android設備”上單擊該設備,然后單擊“確定”。 您也可以在模擬器上運行。 只需單擊您的模擬器,然后單擊確定。

在此處輸入圖片說明

如果日食確認打開透視圖,請選擇是

在此處輸入圖片說明

然后,如果您想知道變量的值是什么,只需將鼠標放在變量的實例上,或者可以在“調試”透視圖的“變量”窗口中瀏覽。

在此處輸入圖片說明

使用LogCat,這將為您提供錯誤消息以及測試設備/仿真器中發生的所有其他情況。

窗口->顯示視圖->其他-> LogCat

我強烈建議您在一般情況下進行調試。

http://www.vogella.com/articles/EclipseDebugging/article.html

它帶您了解Eclipse在該部門提供的所有功能,並且值得您花時間。

就可能有用的特定技巧而言,設置斷點可能很有用(即,單擊代碼的左邊距以使那些藍色針腳出現)。 然后,在調試中運行時,您可以在出現問題的地方附近停下來,並使用調試窗口頂部的“逐步進入”,“逐步向前”和“逐步返回”命令一步一步地前進。 當您以這種方式遍歷代碼時,可能會打開變量窗口,以便可以看到以應有的方式設置的內容,等等。

另外,您可以通過在debug中單擊Breakpoints窗口,然后單擊“ J!”,在RuntimeException上設置一個斷點(甚至捕獲一個斷點)。 按鈕(鼠標懸停文本顯示“添加Java異常斷點”。

調試視圖還可以讓您做其他很酷的事情,例如:

  • 讓您設置“觀察點”,以便您可以看到應用程序何時更改相關字段等。
  • “拖放到框架”,以便您可以在中間啟動應用程序。
  • 設置步進過濾器,以便可以更有效地完成我前面提到的“步進”操作。
  • 創建一個詳細信息格式化程序,這是一段Java代碼片段,用於格式化字段的輸出,以便您可以在調試器中更清晰地查看它。
  • 以及更多!

同樣,我建議上面參考的教程。 歡迎來到調試的美好世界。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM