NDK開發,如何配置 debug環境

2022-01-17 13:35:07 字數 2406 閱讀 8169

剛開始做ndk 開發的時候,android studio 還沒提供了 native c/c++ 設定斷點 除錯,我們都是通過輸出 日誌來除錯,這樣費時耗力。android studio 應該是在 2.2 版本才提供的設定斷點 debug 功能,同時在該版本也提供了 cmake 編譯。

我目前在做 ndk 開發的時候,還是習慣用 ndk-build(也就是設定 android.mk) 來開發,我先簡單說一下怎麼用輸出日誌來除錯:

1、首先在 android.mk 設定module 新增日誌庫,如下**:

include $(clear_vars)

local_module :=ndktest

local_src_files :=native_lib.c

local_ldlibs

+= -

llog

include $(build_shared_library)

2、然後在 native_lib.c 實現檔案新增:

#include //

為了方便呼叫,將輸出巨集定義

#define log_tag "native_output"

#define logi(...) ((void)__android_log_print(android_log_info, log_tag, __va_args__))

#define loge(...) ((void)__android_log_print(android_log_error, log_tag, __va_args__))

3、最後就能在 native_lib.c 實現檔案的 方法裡輸出日誌了,如:

logi("

run here");

logi(

"run i=%d

", i);

上述是比較繁瑣的除錯方法,每次寫完日誌,又要重新編譯一下**。現在敘述一下怎麼搭建 native c/c++ 斷點除錯方法:

1、首先要把你的 android studio 公升級到 2.2 或更高,且在module下 build.gradle 的buildtoolsversion 引數 要 設定 25 或以上: buildtoolsversion '25.0.0'

3、如果你是從舊專案移植過來的(也就是以前用 android.mk配置),你可以開啟 module下 build.gradle檔案

defaultconfig節點中,新增ndk,如下:

ndk
然後在android 的節點中,新增 externalnativebuild 節點:

externalnativebuild 

}

接著 sync project 同步一下專案,你會看見專案多了幾個資料夾:

當你點選 run debug 按鈕 右邊 的attach debugger to android process 按鈕,如果有 native、dual 選擇:

當你點選 run debug 按鈕 右邊 的attach debugger to android process 按鈕,如果有 native、dual 選擇:

說明你配置成功了, 可以在 native-lib.c 實現檔案 設定斷點來除錯了。 上述截圖 彈框 是debuger 配置,預設是 auto 選項,你可以設定 成 native 用來debug 你的natvie **。

debug 到 native 的時候如下:

你可以使用 lldb 作為你的debug 輔助工具, lldb怎麼使用,這一章不細說,你可以查閱其它資料。

參考資料:

(android 大陸官網)

tips:假設你已經配置好了ndk開發環境,以及 lldb 外掛程式。

在 debug的時候如下出現如下錯誤:

error:failure: build failed with an exception.

* what went wrong:

> build command failed.

[armeabi] staticlibrary : libclapack1.a

process_begin: createprocess(null, e:/android/sdk/ndk-bundle/build//../toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-ar crsd ....

NDK開發環境配置

參考 準備ndk 1 從 2 解壓 我解壓到了以下目錄,切記,目錄名裡不能有空格 安裝cygwin 參見為cygwin設定ndk 1 到cygwin的安裝目錄下,找到home資料夾,進入以自己使用者名稱 此處為a 命名的資料夾,找到.bash profile 這些檔案必須要啟動過cygwin bas...

NDK開發環境配置

參考 準備ndk 1 從2 解壓 我解壓到了以下目錄,切記,目錄名裡不能有空格 安裝cygwin 參見為cygwin設定ndk 1 到cygwin的安裝目錄下,找到home資料夾,進入以自己使用者名稱 此處為a 命名的資料夾,找到.bash profile 這些檔案必須要啟動過cygwin bash...

mac下配置NDK開發環境

一 啟動終端terminal 二 輸入 pico bash profile 回車。三 輸入以下內容 路徑依實情而定 php export android sdk root users apple desktop adt bundle sdk export android ndk root users...