Android导入第三方SO库,上层Java调用(1)
(1)在module的build.gradle文件的android块中配置sourceSet:
sourceSets {
main {
jniLibs.srcDir 'libs'
}
}
(2)在module的路径下,比如app\下,如果有app\libs目录,不需新建,如果没有,在app\下,新建libs,形成\app\libs目录。
(3)把第三方的.so库文件放到\app\libs下。需要注意的,现在一般是64位的so库,如果app\libs下没有\arm64-v8a文件夹,需要新建arm64-v8a目录文件,然后把64位的so库放到
app\libs\arm64-v8a下。
(4)上层Java调用:
这里需要特别注意放入到app\libs\arm64-v8a里面的.so文件名称和上层Java代码里面 System.loadLibrary 加载时候的名称对应问题,假设so文件位于:
app\libs\arm64-v8a\libf1.so
app\libs\arm64-v8a\libf2.so
那么,上层Java调用时候需要这么写:
static {
System.loadLibrary("f1");
System.loadLibrary("f2");
}
app\libs\arm64-v8a\下面的libxxxxx.so文件名,到了java层调用时候,把 lib 和 文件后缀名.so去掉不带。