a) 下載eclipse, SDK, NDK
b) 安裝cdt
c) 安裝adt
d) window --> Preferences --> Android 配置SDK路徑
d) window --> Preferences --> Android --> NDK 配置NDK路徑
2. 建立工程
a) 新建Android工程
b) 工程上右鍵 ---> Android Tools ---> Add Native Support...
c) 添加native 函數,javah 生成頭文件, 寫Native Cpp代碼...
3) 調試
a) 工程上右鍵 --->Properties ---> C/C++ Build ---> Build Settings ---> Build command: "ndk-build NDK_DEBUG=1 -j4"
b) 工程上右鍵 ---> Debug As ---> "Android Native Application" 進行調試
這個時候會出現
Unknown Application ABI:
Android
Unknown Application ABI:
NDK:
Unknown Application ABI:
WARNING:
Unknown Application ABI:
c) 在jni目錄下增加 Application.mk, 內容爲 "APP_PLATFORM := android-16"
d) 就可以進行調試了。
注意事項:
a) System.loadLibrary("xxxx") 位於onCreate 的setContentView(...) 之後,
b) onCreate裏調用的JNI函數不能在native 裏面拿到斷點。
onResume在第一次啓動的時候,也不能進入native 斷點, 第二次才能進入。
觀察了一下,應該是整個應用啓動完成後,才連上gdb的,才能進行斷點調試。因此,在啓動完成以後才能進行斷點。