在Android Studio中使用.so(共享对象)文件

时间:2018-07-18 11:08:01

标签: java android c++ c

我有* .so文件,该文件不是我在我的项目中生成的。我知道此lib中有一个名为“ x”的函数,并且我想使用此函数,但不知道如何。.

P.S。

我没有用于生成* .so文件的源文件。

1 个答案:

答案 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);