如何通過Android Logcat插件分析firebase崩潰問題
一、安裝Android Logcat插件
1、新建空白u(yù)nity工程,打開PackageManager窗口,菜單欄Window/PackageManager
2、PackageManager中安裝Android Logcat日志工具
3、安裝AndroidLogcat完成
二、獲取Create symbols.zip中的libil2cpp.sym.so文件
1.打包
在出包時勾選Create symbols.zip選項,在PlayerSettings面板中,出包選項從mono切換到il2cpp,然后Build包
出包完成,目錄會有一個apk和一個zip的符號表壓縮包
三、獲取libunity.sym.so文件
在Unity編輯器中,libunity.sym.so文件通常位于Unity安裝目錄下的Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Symbols文件夾中。
具體路徑是:{Unity安裝目錄}\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Symbols
請注意,這個路徑是基于默認(rèn)的Unity安裝目錄,并且可能因為不同的Unity版本或自定義安裝路徑而有所變化。如果你的Unity安裝目錄有所不同,你可以通過搜索文件名或在Unity編輯器中使用"Reveal in Finder"(在資源視圖中右鍵點(diǎn)擊文件,選擇"Show in Explorer")等選項來找到libunity.sym.so文件的確切位置。
四、Crash日志解析
1.菜單欄打開AndroidLogcat工具,Window/Analysis/AndroidLogcat
2.配置符號表
右上角,點(diǎn)擊Tools,點(diǎn)擊Stacktrace Utility
點(diǎn)擊Configure Symbol Path,然后彈出的配置界面點(diǎn)擊+號
點(diǎn)擊Pick Custom Location,選擇剛剛解壓的符號表文件夾
3.崩潰堆棧格式
找到一個firebase上的崩潰堆棧:
Fatal Exception: Tombstone: Version '2019.4.40f1 (ffc62b691db5)', Build type 'Release', Scripting Backend 'il2cpp', CPU 'armeabi-v7a' Build fingerprint: 'TECNO/BE8-RU/TECNO-BE8:12/SP1A.210812.016/230105V142:user/release-keys' Revision: '0' ABI: 'arm' Timestamp: 2024-01-24 10:11:45+0400 pid: 20495, tid: 20628, name: UnityMain >>> <<< uid: 10182 signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 Cause: null pointer dereference r0 00000000 r1 00000000 r2 00000002 r3 00000001 r4 06eca250 r5 44fb7fd0 r6 6eaf1af5 r7 00000020 r8 7a5c083c r9 a7e97710 r10 00000000 r11 7a5c07e0 ip 7a5c0740 sp 7a5c07d0 lr aabb9191 pc 5a864344 #00 pc 0x1322344 libil2cpp.so (libil2cpp.0x1322344) #01 pc 0x1322158 libil2cpp.so (libil2cpp.0x1322158) #02 pc 0x1321f00 libil2cpp.so (libil2cpp.0x1321f00) #03 pc 0x1321cf4 libil2cpp.so (libil2cpp.0x1321cf4) #04 pc 0x1322690 libil2cpp.so (libil2cpp.0x1322690) #05 pc 0x353445 libunity.so (libunity.0x353445) #06 pc 0x35e337 libunity.so (libunity.0x35e337) #07 pc 0x35db77 libunity.so (libunity.0x35db77) #08 pc 0x35e043 libunity.so (libunity.0x35e043) #09 pc 0x3542a9 libunity.so (libunity.0x3542a9) #10 pc 0x3542c5 libunity.so (libunity.0x3542c5) #11 pc 0x354461 libunity.so (libunity.0x354461) #12 pc 0x4313bf libunity.so (libunity.0x4313bf) #13 pc 0x43f191 libunity.so (libunity.0x43f191) #14 pc 0xac07b base.odex (base.0xac07b)
AndroidLogcat可解析的崩潰堆棧格式為:
#xx pc 32位地址(即8位16進(jìn)制數(shù),要去掉x,不足在前面補(bǔ)0) /{ABI}/{xxx}.so
#00 pc 01322344 /arm/libil2cpp.so #01 pc 01322158 /arm/libil2cpp.so #02 pc 01321f00 /arm/libil2cpp.so #03 pc 01321cf4 /arm/libil2cpp.so #04 pc 01322690 /arm/libil2cpp.so #05 pc 00353445 /arm/libunity.so #06 pc 0035e337 /arm/libunity.so #07 pc 0035db77 /arm/libunity.so #08 pc 0035e043 /arm/libunity.so #09 pc 003542a9 /arm/libunity.so #10 pc 003542c5 /arm/libunity.so #11 pc 00354461 /arm/libunity.so #12 pc 004313bf /arm/libunity.so #13 pc 0043f191 /arm/libunity.so
4.選擇abi對應(yīng)的符號表
ABI:arm=>armeabi-v7a arm64=>arm64-v8a (還有其他如x86、x86_64)
5.解析
參考:UnityIL2CPP包Crash閃退利用Android Logcat還原符號表堆棧日志
到此這篇關(guān)于如何通過Android Logcat插件分析firebase崩潰問題的文章就介紹到這了,更多相關(guān)Android Logcat firebase崩潰內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 在Android界面上顯示和獲取Logcat日志輸出的方法
- Android adb logcat 命令查看日志詳細(xì)介紹
- Android shell命令行中過濾adb logcat輸出的幾種方法
- Android開發(fā)之在程序中時時獲取logcat日志信息的方法(附demo源碼下載)
- Android Studio使用小技巧:自定義Logcat
- logcat命令使用方法和查看android系統(tǒng)日志緩沖區(qū)內(nèi)容的方法
- android真機(jī)調(diào)試時無法顯示logcat信息的解決方法介紹
- Android開發(fā)筆記之:一分鐘學(xué)會使用Logcat調(diào)試程序的詳解
相關(guān)文章
Android實現(xiàn)銀行卡、手機(jī)號帶空格格式
這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)銀行卡、手機(jī)號帶空格的格式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-12-12android Launcher AppWidget添加步驟介紹
大家好,本篇文章主要講的是android Launcher AppWidget添加步驟介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽2022-01-01Android 頂部標(biāo)題欄隨滑動時的漸變隱藏和漸變顯示效果
這篇文章主要介紹了Android 頂部標(biāo)題欄隨滑動時的漸變隱藏和漸變顯示效果,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-06-06Android?`%d`?與?`1$%d`?格式化的區(qū)別解析
本文詳細(xì)解析了Android開發(fā)中`%d`和`1$%d`格式化占位符的區(qū)別,并通過Kotlin代碼示例幫助理解,`%d`按順序填充參數(shù),而`1$%d`按指定索引填充參數(shù),后者在多語言場景下更靈活,感興趣的朋友一起看看吧2025-03-03Android控件系列之Button以及Android監(jiān)聽器使用介紹
Button是各種UI中最常用的控件之一,它同樣也是Android開發(fā)中最受歡迎的控件之一,用戶可以通過觸摸它來觸發(fā)一系列事件,要知道一個沒有點(diǎn)擊事件的Button是沒有任何意義的,因為使用者的固定思維是見到它就想去點(diǎn)2012-11-11