場景描述
- 調(diào)試app在使用中出現(xiàn)崩潰膜眠。
- 當我們把手機連接電腦,在AS的logcat中查看App的運行日志的時候,錯誤日志在logcat中一閃而過柴底,很快就會被后面的新日志給覆蓋掉調(diào)婿脸。
- 并不是所有手機都這樣,只有部分手機柄驻。如nexus狐树、華為等。
解決辦法
方法一
- 將logcat過濾器從show only selected application改為No filters鸿脓。
- 將log級別改為error抑钟。
方法二
換一個崩潰后不會重啟應用的系統(tǒng)。
方法三
使用adb logcat > 1111.txt
命令把錯誤日志導出來野哭,然后自己去找對應的錯誤日志在塔。
原因分析
為什么有的手機不這樣,而有的手機會這樣拨黔?
某些系統(tǒng)在APP crash之后會自動重啟蛔溃,導致新的日志會覆蓋掉以前的日志。而有些系統(tǒng)在crash之后不重啟篱蝇,就不會出現(xiàn)錯誤日志被覆蓋的情況贺待。
為什么奔潰前的錯誤日志會被覆蓋掉?
- 在logcat工具欄有下面幾個過濾選項:設備零截、進程麸塞、log級別(i、e涧衙、v等)哪工、搜索關(guān)鍵詞、過濾器弧哎。
- 正常使用的時候雁比,我們會設備、自己的進程傻铣。然后在過濾器上選擇show only selected application章贞。這樣就能只顯示我們自己app的日志了。
- 每一個application都是一個進程非洲,對應一個進程號鸭限。一個APP在崩潰前和崩潰重啟后,是兩個進程两踏。
- 所當app崩潰并自動重啟后败京,logcat過濾器顯示的是重啟后新進程的日志。而我們希望看到的錯誤日志是之前進程的梦染,所以不會顯示赡麦。