上网查了很多资料,大部分都是使用Android.mk来配置.
这里我就不介绍这种方式了,我这边介绍使用gradle来配置.
classpath 'com.android.tools.build:gradle-experimental:0.8.0'
apply plugin: 'com.android.model.application'
model {
repositories {
libs(PrebuiltLibraries) {
// Configure one pre-built lib: shared
gmath {
binaries.withType(SharedLibraryBinary) {
sharedLibraryFile = file("libs/${targetPlatform.getName()}/libgmath.so")
}
}
}
}
android {
compileSdkVersion = 23
buildToolsVersion = "23.0.2"
defaultConfig {
applicationId = "com.example.hello_jnicallback"
minSdkVersion.apiLevel = 15
targetSdkVersion.apiLevel = 23
versionCode = 1
versionName = '1.0'
}
ndk {
moduleName = 'hello-jnicallback'
ldLibs.addAll(['android', 'log'])
}
buildTypes {
release {
minifyEnabled = false
proguardFiles.add(file('proguard-android.txt'))
}
}
sources {
main {
jni {
dependencies {
library 'gmath' linkage 'shared'
}
}
jniLibs {
source {
srcDir "libs"
}
}
}
}
}
}
主要是这2段代码
1 预编译
repositories {
libs(PrebuiltLibraries) {
// Configure one pre-built lib: shared
gmath {
binaries.withType(SharedLibraryBinary) {
sharedLibraryFile = file("libs/${targetPlatform.getName()}/libgmath.so")
}
}
}
}
2 引入依赖
jni {
dependencies {
library 'gmath' linkage 'shared'
}
}
还有一点就是要把.h文件引入,我这里简单点,就直接把gmath.h和自己的.c文件放在一起,然后在.c文件中直接
#include "gmath.h"
然后就可以在自己的.c文件中使用so里面的方法了.
如果是.a文件,也就是静态库的话,可以使用'static'替换'shared'