第一步,新建该目录,将so文件放入目录下。
android studio中,有些so 需要加上以下语句才会生效。具体情况具体分析
sourceSets.main{
jniLibs.srcDirs = ['src/jniLibs'];
}
全部配置文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
defaultConfig {
applicationId "com.example.lei.initsdkdemo"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
sourceSets.main{
jniLibs.srcDirs = ['src/jniLibs'];
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
compile files('libs/FaceMatch.jar')
compile files('libs/AS60xSDK.jar')
compile files('libs/idcard_sdk.jar')
}
最后,在java代码中加上这句。
static
{
System.loadLibrary("fctrlgp");
}
全文如下
packagecom.pwv.gpctrl;
/**
* 电源控制模块,可以通过程序控制电源的开关(此功能需要设备电源管理模块)
* 注:该类与libctrlgp.so配套使用、该类的package路径必须为:package com.pwv.gpctrl;
*
*/
public classfctrl
{
static
{
System.loadLibrary("fctrlgp");
}
public native intGetValue(intparamInt);
public native intSetValue(intparamInt1,intparamInt2);
/* 打开电源操作
SetValue(32, 1);
gpctrl.GetValue(32); */
/* 关闭电源操作
SetValue(32, 0);
gpctrl.GetValue(32); */
}
一般用这个
sourceSets {
main {
// 设置Jni so文件路径 如果有jniLibs目录就不需要设置
jniLibs.srcDirs = ['libs']
}
}
sourceSets.main{
jniLibs.srcDirs = ['src/jniLibs'];
}