我有* .so文件,该文件不是我在我的项目中生成的。我知道此lib中有一个名为“ x”的函数,并且我想使用此函数,但不知道如何。.
P.S。
我没有用于生成* .so文件的源文件。
答案 0 :(得分:0)
首先,您需要绝对包含函数声明的标头(.h)。
第二,您必须创建一个包含.so文件的文件夹,您可以将其命名为jniLibs
并将其放入src/main/jniLibs
,然后将sourceSets
添加到gradle文件,放入android块:
sourceSets {
main {
jniLibs.srcDirs = ['src/main/jniLibs']
}
}
注意::jniLibs文件夹通常包含子文件夹,具体取决于lib的目标ABI(arm64-v8a,armeabi-v7a,x86,x86_64),因此您必须了解它。
最后,您必须通过添加来在Java端加载本机库:
/* Load jni .so on initialization */
static {
System.loadLibrary("my-native-lib-name");
}
并声明您的函数以使用它,如下所示:
public static native void myFunction(String arg, int another_arg);