今次介紹如何利用 Android Studio (其他IDE也可) 提供的功能,協助我們找到問題點,將著重在Log的查閱與追蹤。
程式錯在哪?
會出現「很抱歉,OOO已停止」基本上都屬於嚴重的錯誤,應用程式無法繼續執行,此時應立即查閱 LogCat 介面的資訊,為了方便閱讀可以將 Log level 定為 Error 。在 Android Studio 中,展開下方的「Android Monitor」並切換至「logcat」即可。如上圖的紅字部分,即是目前需要解決的問題。Log 中藍色字樣是可以連結的,點按後將自動跳至出問題的程式列,以本例而言,MainActivity.java 的第 34 行有問題,點按後將直接跳至該處。
錯誤訊息要出現在 LogCat 有個條件,即 App 的執行環境必須與 ADB(Android Debug Bridge) 連結,簡單來說,有兩種可能:
1. 在 Android Studio (或其他IDE)直接將程式執行於已連結至電腦的行動裝置。
2. 將 App 執行於電腦中的模擬器,若你的模擬器是藉由 IDE 提供的按鈕啟動,應會自動連接。
找到錯誤訊息了,接下來呢?
在本例中,於 MainActivity.java 檔案中的第34行發生 OutOfMemoryError。一旦確認錯誤的地方,你有幾個選擇,除了自身經驗外,相信找 Google 是個便捷、快速的方法,Android 相關議題至今已在網路上累積相當可觀的資料量,除非是隨著 IDE 更新而引起的新問題,多數的問題都是能找到解決方案的。
當然,直接詢問有經驗者也可以,亦需給予必要的資訊(錯誤訊息),在此要提的是,所謂錯誤訊息並不是「很抱歉,OOO已停止」這只是個提醒,看不出錯在哪,以這些字句來詢問是得不到答案的。
後紀
測試、除錯一直是軟體開發的重要環節,也是個困難的問題,本文僅提供概略的方向,讓初學者有些參考依據,不致於在發生錯誤時停滯不前。筆者曾協助解決一些應用開發的問題,但他們遇到的問題往往屬於 Java 的範疇,尚未牽扯至 Android 的特殊議題。欲使用 Java 開發原生程式的開發者,務必加強 Java 觀念,有些看似枯燥的環節反而是重點,稍不留神可能會讓你陷入瘋狂除錯的迴圈。
沒有留言:
張貼留言