本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

Native_crash

更新時間:2024-07-12 20:03

問題分析

Native的Crash是指在C/C++運行時出錯,系統產生了Linux錯誤訊號,導致的進程出錯退出。可以通過系統的logcat來分析Crash日誌。

解決方案

應用在C/C++運行時出錯,系統產生了Linux錯誤訊號,導致的進程出錯退出。建議開發人員使用NDK工具ndk-stack進行分析定位。

Android開發中,在Java層可以方便的捕獲crashlog,但對於Native層的crashlog通常無法直接擷取,只能通過系統的logcat來分析Crash日誌。這裡我們建議開發人員使用NDK工具ndk-stack進行分析定位。

  1. 下載最新版NDK。ndk-stack工具就在NDK主目錄下。

  2. 在mqc管理中心找到出現Native Crash的測試,並下載日誌。

  3. 根據失敗機型尋找該機型的CPU資訊ro.product.cpu.abi,如圖三星N7100的CPU類型為armeabi-v7a。(目前mqc上的模擬器CPU類型均為x86_64。)

  4. 使用ndk-stack分析出錯位置,命令格式如下:

    $NDK/ndk-stack -sym $PROJECT_PATH/obj/local/$cpu.abi -dump $LOGCAT_PATH

    本樣本使用的命令如下:

    ndk-stack -sym ./workspace2/testNdkStack/obj/local/armeabi-v7a/ -dump ./logcat.log > result.log

    在result.log中可以分析定位到出現該Crash的對應代碼檔案和具體行數。

  • 本頁導讀 (M)
  • 問題分析
  • 解決方案
文檔反饋
phone 聯絡我們