2011-02-23 73 views
23

請注意,與題目爲「應用程序意外停止」的許多其他問題不同,我並不要求解決特定問題。我正在要求提供Android/Eclipse/Java新手的最佳策略大綱,以處理這種消化大量信息的艱鉅任務,以便開發(和調試)簡單的Android應用程序。應用程序意外停止:如何調試?

就我而言,我從SDK中取出了示例骨架應用程序,將其稍微修改爲,我試圖運行它的那一刻得到了什麼?

應用 (process.com.example.android.skeletonapp) 意外停止。請再次嘗試 。

好吧,所以我知道我必須看看LogCat。這是充滿時間戳的線路盯着我...我現在做什麼?我需要尋找什麼?

有沒有辦法讓程序單步執行,找到導致應用程序崩潰的語句? (我認爲Java程序永遠不會崩潰,但顯然我錯了)

如何放置斷點?

你能推薦一個Android調試教程在線,除了this one

+1

將您的logcat輸出中的行復制粘貼到問題中,以便人們可以幫助您指出正確的方向。一般來說,查找「Exception」一詞以及一個調用堆棧或任何對應用程序的引用。 – 2011-02-23 23:13:16

+0

@ typo.pl謝謝,當我知道我在做什麼時,我一定會這樣做。然而,在這一點上,我只對@HappyCodeMonkey和@jqpubliq建議的方法感興趣。 – 2011-02-23 23:29:26

+1

我給你的方法 - 「logcat輸出 - 尋找單詞」例外「和一個調用堆棧或任何對你的應用程序的引用」。不要浪費時間在調試器中啓用/禁用斷點時,Android已經告訴您應用程序中存在大問題 - Exception和callstack是吸菸槍。 – 2011-02-24 00:12:51

回答

16

我是一個Eclipse/Android的初學者爲好,但我希望我的簡單的調試過程中可以幫助...

您可以設置在Eclipse中的斷點通過右鍵單擊要分解的行並選擇「切換斷點」。從那裏你要選擇「調試」而不是標準的「運行」,這將允許你一步一步等等。使用LogCat提供的過濾器(在您的教程中引用),以便您可以定位所需的消息,而不是涉及所有輸出。這將會(希望)幫助你理解你的錯誤很長的路要走。

至於其他好的教程,我正在尋找一些我自己,但沒有設法找到任何寶石呢。

+0

這是一個很好的答案。我試圖右鍵單擊我想要分解的行並選擇「切換斷點」,但找不到任何此類菜單項。你確定你沒有把Eclipse和Visual Studio混淆嗎? :) – 2011-02-23 23:32:46

+1

點擊一個方法。左側應該爲該方法的範圍提供藍色突出顯示。那是你點擊的地方。雙擊是相當的 – jqpubliq 2011-02-23 23:37:03

+1

不,絕對是Eclipse ......但是,再看一遍,是否有可能點擊文件編輯器本身而不是文件編輯器左側的米色區域? (例如,這是小警告顯示的區域,告訴你你需要導入一個軟件包或其他東西)。如果這沒有意義,我很樂意創建一個截圖。 – HappyCodeMonkey 2011-02-23 23:40:45

9

過濾日誌只是錯誤,並尋找致命異常

+0

這是一個很棒的提示。謝謝! (和+1 :) – 2011-02-23 23:30:18

4

如果您在Eclipse的'調試'透視圖內部使用Logcat顯示,那麼這些行將用顏色編碼。找到導致應用崩潰的原因很容易,因爲它通常是紅色的。 (或Dalvik)虛擬機不應該崩潰,但是如果你的程序拋出一個異常並且沒有捕獲它,虛擬機將終止你的程序,這是你所看到的'崩潰'。

+0

+1。每個提示都很重要:) – 2011-02-23 23:35:32

0

檢查是否您的應用程序有需要permissions.I也得到同樣的錯誤,我查了logcat的調試日誌這表明這一點:

04-15 13:38:25.387: E/AndroidRuntime(694): java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.CALL dat=tel:555-555-5555 cmp=com.android.phone/.OutgoingCallBroadcaster } from ProcessRecord{44068640 694:rahulserver.test/10055} (pid=694, uid=10055) requires android.permission.CALL_PHONE 

我然後給需要的權限在我的Android,其表現爲我工作。

-2
  1. 在主屏幕中,按菜單鍵。
  2. 列表項
  3. 觸摸設置。
  4. 觸摸應用程序。
  5. 觸摸管理應用程序。
  6. 全部觸摸。
  7. 選擇有問題的應用程序。
  8. 觸摸清除數據並清除緩存(如果可用)。這會將應用重置爲新的應用,並可能會刪除存儲在應用中的個人數據。
+0

這將無助於調​​試應用程序的問題。這可能是一個解決問題的方法,但這對確定發生了什麼問題沒有幫助。 – qqx 2012-11-25 01:22:32

+0

問題要求調試策略,不一定要擺脫錯誤 – 2014-06-06 02:47:13