Android Apk跑native層代碼掛死张吉,日志如下:
12-11 20:13:47.321 I/DEBUG ( 1491): backtrace:
12-11 20:13:47.321 I/DEBUG ( 1491): #00 pc 00100696 /data/app-lib/com.huawei.hmt.hmtCloudAlbum-1/libnative-FaceClustering.so
12-11 20:13:47.321 I/DEBUG ( 1491): #01 pc 00100a0f /data/app-lib/com.huawei.hmt.hmtCloudAlbum-1/libnative-FaceClustering.so (std::vector<float, std::allocator<float> >::_M_default_append(unsigned int)+138)
需要查看是哪一行代碼的錯(cuò)誤,本文先講在AndroidStudio如何反編譯找到錯(cuò)誤代碼行昌妹,linux下編譯的情況待后續(xù)補(bǔ)充
步驟
(1)找到NDK反編譯工具:
C:\Users\xxx\AppData\Local\Android\Sdk\ndk-bundle\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-addr2line.exe
NDK目錄可以從AndroidStudio工具Project Structure->SDK Location中找,如下:
(2)找到出問(wèn)題的庫(kù)的調(diào)試版本哺壶,在如下目錄:
你的工程\app\build\intermediates\cmake\debug\obj\armeabi-v7a
(3)執(zhí)行如下命令:
C:\Users\xxxx\AppData\Local\Android\Sdk\ndk-bundle\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-addr2line.exe -e C:\Users\xxxx\Desktop\libnative-test.so 0x00100696
其中0x00100696為日志中打印的 00100696前面加上0x