1.ndk相关下载版本

1584502508(1).png

1584502555(1).jpg
2.界面化配置
1.javah配置
File-settings-Tools-External Tool

image.png
点击窗口界面左上角的+号,开始如下图配置javah

配置javah.jpg
代码,从上到下依次是:
javah
javah
Program:$JDKPath$\bin\javah.exe
Parameters:-classpath . -jni -d $ModuleFileDir$\src\main\jni $FileClass$
Working directory:$ModuleFileDir$\src\main\Java
2.ndk-build配置

ndk-build配置.jpg
代码,从上到下依次是:
ndk-build
ndk-build
C:\Users\Administrator\AppData\Local\Android\Sdk\ndk-bundle\build\ndk-build.cmd
空着就行
$ProjectFileDir$\app\src\main
其中C:\Users\Administrator\AppData\Local\Android\Sdk\ndk-bundle\build\ndk-build.cmd为你安装ndk的目录下的ndk-build.cmd文件,其他地方用到此路径同理
2.ndk-build clean配置

ndk-build clean配置.jpg
代码,从上到下依次是:
ndk-build clean
ndk-build clean
C:\Users\Administrator\AppData\Local\Android\Sdk\ndk-bundle\build\ndk-build.cmd
clean
$ProjectFileDir$\app\src\main
此处即配置完成,接下来可以直接使用
1.main下面新建jni文件夹与java文件夹同级
jni文件夹下新建Application.mk类
APP_MODULES := TestNdkLibrary(此处TestNdkLibrary是生成的so库名称 随便取)
APP_ABI := all
APP_STL := c++_static
APP_PLATFORM :=android-19
APP_CPPFLAGS += -fexceptions
jni文件夹下新建Android.mk类
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := TestNdkLibrary(此处TestNdkLibrary是生成的so库名称 随便取)
LOCAL_SRC_FILES =: iBeaconLocation.cpp json_reader.cpp json_value.cpp json_writer.cpp BasicAlgorithm.cpp iNavigation.cpp JNIiNavigation.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../jni/include
include $(BUILD_SHARED_LIBRARY)
2.app下build.gradle
android {
……
ndk{
moduleName "TestNdkLibrary"
abiFilters "armeabi", "x86" , "arm64-v8a", "armeabi-v7a", "x86_64"
}
sourceSets.main{
jni.srcDirs = []
jniLibs.srcDir "src/main/libs"
}
}
3.新建TestNdk.java类
public class TestNdk {
public TestNdk(){
System.loadLibrary("TestNdkLibrary");//打印方法
}
}
4.选中TestNdk.java类,鼠标右键可以看到三个刚才配置好的菜单

image.png
javah是生成.h的类
ndk-build是生成.so库
ndk-build clean是清除所有生成过的.so库