(八)Android Studio 中使用第三方的 so 库

版权声明:本文为博主原创文章,未经博主允许不得转载。

本文纯个人学习笔记,由于水平有限,难免有所出错,有发现的可以交流一下。

在 Android Studio 中使用第三方的 so 库

这里写图片描述

Android Studio 新建安卓项目,在 app 下默认有一个 libs 文件夹,把 so 库拷贝到 libs 下面,需要自己进行一定配置。

1.在 app 下的 build.gradle 的 android 下添加配置,然后重新编译。

    sourceSets.main {
        jniLibs.srcDirs = ['libs']
        jni.srcDirs = []
    }

build.gradle 位置:

这里写图片描述

添加配置:

这里写图片描述

2.需要在 CMakeLists 中进行配置
在引用第三方 so 库的时候,我们自己生成的 so 库要链接到第三方的 so,所以我们需要进行一个动态库链接的配置。

选取项目显示为安卓工程, CMakeLists 存放在 app路径下。
这里写图片描述

CMakeLists :


cmake_minimum_required(VERSION 3.4.1)


find_library( # Sets the name of the path variable.
              log-lib

              log )

#设置so库路径
set(my_lib_path ${CMAKE_SOURCE_DIR}/libs)
#讲第三方库作为动态库引用
add_library( native-lib
             SHARED
             IMPORTED )
#指名第三方库的绝对路径
set_target_properties( native-lib
                       PROPERTIES IMPORTED_LOCATION
                       ${my_lib_path}/${ANDROID_ABI}/libnative-lib.so )

add_library( # Sets the name of the library.
             native

             # Sets the library as a shared library.
             SHARED

             # Provides a relative path to your source file(s).
             src/main/cpp/native-lib.cpp )

target_link_libraries( # Specifies the target library.
                       native
                       native-lib
                       ${log-lib} )

CMakeLists 中 添加对第三方 so 库的引用,指定路径,添加到链接中。

修改完后需要进行重新 Rebuild Project,否则编辑器可能仍然提示错误。

3.导入对应的第三方库的头文件。
这里写图片描述

这边把 CMakeLists 中要进行添加的地方圈出来。
这里写图片描述

异常

1.缺少其他平台库

在配置完上面的步骤后,进行编译时候可能报错。

Build command failed.
Error while executing process F:\soft\Android\Studio\SDK2.3\cmake\3.6.4111459\bin\cmake.exe with arguments {–build C:\Users\ZX\Desktop\AndFixTest\app.externalNativeBuild\cmake\debug\x86_64 –target native-lib}
ninja: error: ‘../../../../libs/x86_64/libandfix.so’, needed by ‘../../../../build/intermediates/cmake/debug/obj/x86_64/libnative-lib.so’, missing and no known rule to make it

这里写图片描述

这是由于导入的第三方 so 库没有包含全平台,所以编译时候过不去,这时候需要指定 so 库文件的平台,在 app 下的 build.gradle 中进行修改。

这里写图片描述

abiFilters 后面配置 so 对应的平台,修改完成之后需要重新 Rebuild Project。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值