1.在libs文件夹下面建立armeabi、armeabi-v7a、mips、x86 这4个文件夹
2.每个文件夹下面放一个需要导入的so文件(这个文件可以是随便一个记事本修改为so的文件名就可以)
3.在app模块下面的build.gradle
android { compileSdkVersion 25 buildToolsVersion "26.0.1" defaultConfig { applicationId "com.hg.hg1000" minSdkVersion 17 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } sourceSets{ main{ jniLibs.srcDirs = ['libs'] } } }
这样就ok。
在具体调用so的文件中
1.package包名需要与so文件中定义的一致
2.类名、函数名都要与so中定义的一致
package cepri.device.utils;
public class LibInfo { static { try { //System.loadLibrary("cepri_dev"); System.load("/system/lib/libcepri_dev.so"); } catch(Exception ex) { Log.e("SecurityUnit",ex.getMessage()); } } public static native int getVersion(); public static native int getCompany(); }