我有以下來自 android 的崩潰報告:> java.lang.RuntimeException: at> android.app.ActivityThread.performLaunchActivity> (ActivityThread.java:2822) at> android.app.ActivityThread.handleLaunchActivity> (ActivityThread.java:2897) at android.app.ActivityThread.-wrap11> (Unknown Source) at android.app.ActivityThread$H.handleMessage> (ActivityThread.java:1598) at android.os.Handler.dispatchMessage> (Handler.java:105) at android.os.Looper.loop (Looper.java:251) at> android.app.ActivityThread.main (ActivityThread.java:6572) at> java.lang.reflect.Method.invoke (Native Method) at> com.android.internal.os.Zygote$MethodAndArgsCaller.run> (Zygote.java:240) at com.android.internal.os.ZygoteInit.main> (ZygoteInit.java:767)我的項目中沒有突出顯示特定的類/文件/行,也沒有調試 android 時通常會期望的“由”行。谷歌搜索任何一行似乎只會讓我想到關于空指針異常的問題,這不是(無論如何我已經知道如何調試這些問題,所以請不要指責我調試空指針)。我真正需要一些建議的是從哪里開始調試/重新創建這個非常有限的跟蹤崩潰。有趣的是(也許)它只在 android 8.0 上報告 > 但在各種設備上
2 回答

紅糖糍粑
TA貢獻1815條經驗 獲得超6個贊
ANR 是應用程序無響應的縮寫。Android開發者網站對調試這些文章在這里。要理解的關鍵是,這意味著您的應用程序正在執行一些在 UI 線程上需要很長時間的事情。常見的cuplrit有:
使用網絡
使用磁盤
一些密集的計算
訪問數據庫
你知道這正在發生android.app.ActivityThread.performLaunchActivity
。
幸運的是,Android 是開源的,所以如果你谷歌“android source performLaunchActivity”,你會發現源代碼是最重要的結果。
您可以看到這是啟動您的應用程序的代碼。因此,您的應用程序啟動中的某些內容運行非常緩慢。你可以做很多事情來調查這個:
在您的應用程序啟動中查找訪問磁盤、網絡或數據庫的代碼并將其移動到后臺線程
在嚴格模式下運行您的應用程序,這將警告您的不良行為
上面鏈接的文章中有更多提示。
添加回答
舉報
0/150
提交
取消