1.新建一个工程
2右键工程-->new-->Folder-->JNI folder -->finish,这时会在 app 路径中新建出“libs”文件夹,然后将SO库放入此文件
3.在app-->src-->main-->java下新建包,包名为so库编译native时使用的包名,如:对方是com.so ,就创建一个com.so包,然后在本包下新建一个java.clss文件
在此文件中加载SO库以及 本地native接口如:
public class Native { static{ System.loadLibrary("zbcr"); //加载SO } public Native() { } public int open(String arg) { if(arg.length() <= 0) { return -1; } else { int fd = this.ZBCR_Open(arg); return fd; } } public void close() { this.ZBCR_Close();//调用 } public native int ZBCR_Open(String var1);//so提供的接口 public native void ZBCR_Close(); }4.在app下的build.gradle中添加如下代码:
sourceSets { main { jniLibs.srcDirs = ['libs'] } }否则会报如下错误:E/AndroidRuntime: FATAL EXCEPTION: main
Process: sss.sso, PID: 17487
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/sss.sso1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]] couldn't find "libzbcr.so"