记录一次Android Studio下NDK的使用。
1、打开gradle.properties文件, 在文件的尾端配置,(已经下载好官方提供的ndk-bundle文件的前提下)
android.useDeprecatedNdk=true
2、配置生成的.so库的名字
在build.grade的defaultConfig节点配置
3、新建类,写入静态方法
4、在工程新建 jni 路径
5、终端进入包下
指令 cd firstndkdemo/src/main/java
6、输入编译指令,注意,在此之前先将工程 build -> Make Project一下
Javah -d ../jni lkuan.com.firstndkdemo.FirstNdk
如果出现 编码GBK的不可映射错误,则指定编码即可,指令改为
Javah -encoding utf-8 -d ../jni lkuan.com.firstndkdemo.FirstNdk
7、已经生成了我们需要的头文件了,将头文件拷贝一份,改为我们的c文件
8、报红暂时不处理,在jni目录下新建 Android.mk 文件,写下如下内容,注意后面注释部分在编译之前请删除
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := firstndk //要生成的.so文件库名
LOCAL_SRC_FILES := firstndk.c //你的.c文件名
include $(BUILD_SHARED_LIBRARY)
在jni目录下新建Application.mk 目录,注意,注释部分编译前请删除,写下
APP_ABI := all //这里表示要生成所有平台下的so库,可以在这里进行过滤,选择生成自己需要的so库
9、开始编译得到库文件,注意,上面的注释是不能写在里面的,编译之前先删除 Android.mk及Application.mk里的注释
终端输入 ndk-build.cmd
如果没有效果或者提示无指令,那应该是没有配置好ndk的环境变量,先配置环境变量
10、得到我们的库文件了,接下来就是使用了
11、得到效果了