實例:Android Studio3+版本 獲取存有ANR信息的traces.txt文件,解決ANR問題

一.前期基礎知識儲備

traces.txt系統自動生成的記錄anr等異常的文件,只記錄java代碼產生的異常。

如果是舊版本(Android Studio3以下的版本)的AS,可以直接通過DDMS的File Explorer直接導出來:

之上的AS由於移除了DDMS,所以需要其他的方法獲取該文件。

二.上實例分析

筆者在項目中出現了一個ANR,信息如下:

06-01 14:55:29.473 973-1030/? E/ActivityManager: ANR in com.znv.linkup (com.znv.linkup/.WelcomeActivity)

PID: 9306

Reason: Input dispatching timed out (Waiting to send non-key event because the touched window has not finished processing certain input events that were delivered to it over 500.0ms ago. Wait queue length: 2. Wait queue head age: 17784.3ms.)

具體表現爲停在應用首頁一段時間後,點擊首頁按鈕,卡頓然後會彈出ANR的提示。可以看到出問題的是WelcomeActivity,接着導出traces.txt文件具體定位到出問題的地方。

1)我們先跳轉到Android/SDK/platform-tools的所在目錄下,crtl + shift + 左鍵 選擇在這裏打開cmd窗口

2)然後輸入 adb shell

3)輸入 cd data/anr 跳轉到anr目錄

4)輸入 ls 查看所有文件

5)Ctrl+D 先退出

6)最後輸入 adb pull /data/anr/traces.txt 將文件保存到tools目錄下

具體操作如下圖:

然後再打開traces.txt文件,找到裏面WelcomeActivity相關的地方,也就是自己代碼相關的地方。如下:

由上圖,我們知道是由於WelcomeActivity內的動畫操作不當引起的ANR錯誤。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章