Android Studio集成第三方库,封装jni接口。

我已经使用ndk独立工具链(standalone toolchain)编译了第三方库,libabc.so。需要在android studio 中封装jni接口,对.so库函数进行调用。

1,修改当前工程CMakeList.txt,添加依赖的库和头文件:

include_directories(${PROJECT_SOURCE_DIR}/libs/include)

target_link_libraries(# Specifies the target library.

        native-lib

        # Links the target library to the log library

# included in the NDK.

        ${log-lib}

${PROJECT_SOURCE_DIR}/libs/armeabi-v7a/libabc.so

${PROJECT_SOURCE_DIR}/libs/armeabi-v7a/libdependecy1.so

${PROJECT_SOURCE_DIR}/libs/armeabi-v7a/libdependecy2.so

${PROJECT_SOURCE_DIR}/libs/armeabi-v7a/libdependecy3.so

   ${PROJECT_SOURCE_DIR}/libs/armeabi-v7a/libdependecy4.so)

2,修改app的build.gradle文件,添加如下字段,依赖库文件夹和依赖库平台:

sourceSets{

main{

jniLibs.srcDirs = ['libs']

}

}

flavorDimensions'cpuArch'

productFlavors {

arm7 {

dimension'cpuArch'

        ndk {

abiFilter'armeabi-v7a'

        }

}

universal {

dimension'cpuArch'

        // include all default ABIs. with NDK-r16,  it is:

//  armeabi-v7a, arm64-v8a, x86, x86_64

    }

}

3,在app文件夹下新建libs文件夹,并将依赖库放入对应平台目录中,如下图所示:


4,建立java和cpp文件,交互数据,cpp中包含库的头文件,在cpp中能够直接调用库函数了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容