环境搭建,安装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中调用
运行大功告成