记录一下Android第一次使用jni文件需要做的配置
目录
三、编写android.mk、Application.mk文件
第一步:创建一个java 文件
第二步:创建jni文件夹,存放jni文件,以及生成的头部文件
一、配置 javah 命令
1、File -> Setting -> Tools ->External,点击加号,弹出弹窗
2、数据填写
Name:javah
Group:NDK
Programs:javah.exe的安装路径,如果没有的话重新安装java
Arguments:-classpath $SourcepathEntry$ -jni -d $ContentRoot$\src\main\jni $FileClass$
注:\src\main\jni 这个是我工程的jni路径,一定要记得更换!!!!!
Working directory:$SourcepathEntry$ 或者 $FileDir$
填写完毕后点击OK。
3、选择要生成头部的java文件,单击右键
单击右键 -> NDK -> javah,点击会在\src\main\jni生成对应的头文件
注:cpp或者.c文件名称需要跟头部文件一致,jni文件里的函数名称也需要更改,保持跟头部文件一致
二、配置ndk-build 用来编译jni
1、查看自己NDK路径
根据此路径找到ndk,如果没有下载一个sdk
2、导入NDK路径
旧版更改位置:File -> Project Structure ->SDK Location
新版的更改位置:local.properies(SDK Location)
3、File -> Setting -> Tools ->External,点击加号,弹出弹窗
Program:根据自己NDK的路径填写
Working directory:$ModuleFileDir$\src\main
有的版本Working directory:改为$SourcepathEntry$
4、app/build.gradle的修改
1)在Android下的defaultConfig中添加,指定ndk生成JNI文件so库
ndk {
abiFilters "armeabi-v7a", 'arm64-v8a'}
2)在Android下添加以下代码,记得更改相关路径
externalNativeBuild{
ndkBuild {
path './src/main/jni/Android.mk'
}
}
sourceSets {
main {
java.srcDirs = ['src/main/java']
jniLibs.srcDirs "libs"
}
}
4、效果展示
三、编写android.mk、Application.mk文件
1、新建Android.mk
内容填写如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := vendorstorage(记得更改)
LOCAL_SRC_FILES := com_example_wifimac_VendorStorage.cpp(记得更改)
LOCAL_LDLIBS += -llog
include $(BUILD_SHARED_LIBRARY)
2、新建Application.m
内容填写如下:
APP_PLATFORM := android-30
APP_MODULES := vendorstorage(记得更改)与Android.mk的一致APP_ABI := all
如有问题麻烦各位大佬指点一下!