顯unknownapplication怎么回事啊?
其實就是程序由于某些原因出錯了,可能是代碼 BUG 也可能是系統和環境因素導致的。
例如你的某個 App 需要通過服務器獲取數據,但是你的手機網絡有問題導致一直獲取不到,造成網絡連接超時。如果代碼中未對「超時」這個可能發生的情況進行處理的話,那么「出現網絡請求超時」這個現象就屬于未捕獲的異常。異常就是指的超時這個行為,未捕獲指的未對這個行為進行處理
而 Android 中程序一旦出錯,就會統一的彈出一個「應用已停止運行」,然后結束或者重啟應用程序。
單看這個彈窗是無意義的,如果你想看到實際細節,你需要深入輸出的日志找到具體原因。這時候就需要用 logcat
logcat 查看日志,需要先讓設備成功進行 adb 連接以后。然后
當然,由于已經確定要看的是已經崩潰的應用,那么我們過濾日志 Tag 類型為 Error 即可
再由于我們通常是知道崩潰是那個應用,所以我們可以繼續指定應用過濾。例如我自己開發的一個 App 包名是 io.bluerain.tweaks
,假設我不是開發者,我只能通過包名過濾。
網上有一種方法是利用 Android 內置的 ps 命令獲取進程,然后用 grep 過濾和 cut 截取到 pid,再由 pid 過濾日志。這樣間接的實現包名過濾的手段: