剛開始做ndk 開發的時候,android studio 還沒提供了 native c/c++ 設定斷點 除錯,我們都是通過輸出 日誌來除錯,這樣費時耗力。android studio 應該是在 2.2 版本才提供的設定斷點 debug 功能,同時在該版本也提供了 cmake 編譯。
我目前在做 ndk 開發的時候,還是習慣用 ndk-build(也就是設定 android.mk) 來開發,我先簡單說一下怎麼用輸出日誌來除錯:
1、首先在 android.mk 設定module 新增日誌庫,如下**:
include $(clear_vars)2、然後在 native_lib.c 實現檔案新增:local_module :=ndktest
local_src_files :=native_lib.c
local_ldlibs
+= -
llog
include $(build_shared_library)
#include //3、最後就能在 native_lib.c 實現檔案的 方法裡輸出日誌了,如:為了方便呼叫,將輸出巨集定義
#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__))
logi("上述是比較繁瑣的除錯方法,每次寫完日誌,又要重新編譯一下**。現在敘述一下怎麼搭建 native c/c++ 斷點除錯方法:run here");
logi(
"run i=%d
", i);
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...