1.在Java中新建一个Utils类
1)指定路径下新建一个文件夹 ,包名为Utils
2) 新建类
NativeUtils.java
package com.sample.Utils;
public class NativeUtils {
public static native int LoadFile(); //函数名字可以自定义,只需要对应起来即可
public static native int StartPoisson();
static{
System.loadLibrary("TeapotNativeActivity"); //用来链接so库,本例中库名对应的是libTeapotNativeActivity.so
}
}
3)Java中调用方式为
NativeUtils.LoadFile();//名字对应
NativeUtils.StartPoisson();
4)c++中函数实现
extern "C"
JNIEXPORT jint JNICALL
Java_com_sample_Utils_NativeUtils_LoadFIle(JNIEnv *env, jclass type) { //函数名字规则:这里Java_开头,然后包名com_sample_Utils_,
//然后类名NativeUtils_,然后函数名LoadFIle
// TODO
return 0;
}
5)注意,如果提示找不到函数实现时,说明so没有链接进去
类中定义,详见(2)
static{
System.loadLibrary("TeapotNativeActivity"); //用来链接so库,本例中库名对应的是libTeapotNativeActivity.so
}
在gradle中添加以下代码:
sourceSets {
// main {
// jniLibs.srcDirs = ['libs']
// }
// }
注意在文件夹中新增libs文件夹,和armeabi-v7a子文件夹,里面放对应的so文件