在真機上調試時,斷點打在 OnClickListener 內卻無法命中,直接跳過進入 Looper,通常是調試連接流程缺少關鍵步驟。
標準調試流程(Android Studio)
- 啟動 App 至待調試頁面:確保 App 運行在前台,目標按鈕可見。
- 設置斷點:在
onClick(View v) 方法第一行(或需檢查的行)左側點擊,出現紅點。
- 附加調試器:點擊工具欄 Attach Debugger to Android Process 圖標(綠色蟲子旁的圖標,或
Run → Attach Debugger)。
- 選擇進程:彈出對話框中,勾選 Show all processes,找到應用包名對應的進程(通常顯示為
com.example.app 或 com.example.app:remote),點擊 OK。
- 觸發點擊:在手機上點擊目標按鈕,IDE 應暫停在斷點處,變數面板顯示上下文。
常見失敗原因
- 未點擊「Attach Debugger」,直接用 Debug 圖標啟動——若 App 已運行,需附加而非重新啟動。
- 選錯進程(如選中
:remote 服務進程而非主進程)。
- 代碼混淆/縮釋導致行號不對應——調試構建類型確保
minifyEnabled false。
- 斷點設置在不可執行行(如註釋、聲明行)——移至可執行語句。
Eclipse (ADT) 同理
DDMS 視圖選中進程 → 點擊綠蟲子圖標 → 設置斷點 → 觸發事件。
掌握「運行中附加」而非「重新啟動調試」是真機調試已運行 App 的關鍵。