環境搭建,安裝lldb和最新ndk
一:新建myndk工程並創建JNITest類
二:javah 生成頭文件h
打開as的terminal,進入到java的目錄輸入
-d jni表示在當前目錄下創建jni文件夾,後面必須採用點分割的包名(com.XX.XX.XX),進入的路徑和包名必須剛好配合,否則不能生成頭文件,JNITest最後不能包含擴展名,回車後便可以在jni目錄下生成
生成的頭文件再根據需要rename
錯誤寫法:
三:在jni目錄下創建android.mk application.mk 並且關聯到c++庫
android.mk
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := JNITest LOCAL_SRC_FILES := test.c include $(BUILD_SHARED_LIBRARY)
application.mk
APP_PLATFORM := android-21 APP_ABI :=armeabi-v7a
左上角file ->Link C++ Project with Gradle下拉選擇ndk-build,找到上述的mk文件後點確認,gradle自動生成
常見問題:此時打開頭文件h會出現紅字
解決方法:
1、新建test.c
2、test.c中加入include頭文件
3、test.c中重載方法並加入測試代碼
4、gradle刷新
五:編譯運行
此時編譯會出現
解決方法:JNITest類中加入so庫引用
再次運行即可看到結果
六:JNITest加入新的方法
點擊就會在test.c中生成
加入測試代碼
activity中調用
運行大功告成