Android的NDK开发中Cmake报缺少对应的x86的so文件

需要实现一个串口操作的命令。

供应商提供了2个so文件。

分别是 armeabi-v7a 和   arm64-v8a

添加到对应的cpp下。

在CMakeLists.txt里添加so文件

# 添加预编译的库
add_library(libxxx SHARED IMPORTED)

# 设置库的路径
set_target_properties(libxxx PROPERTIES IMPORTED_LOCATION
        ${CMAKE_SOURCE_DIR}/${ANDROID_ABI}/libxxx.so)

对应的在最后也要添加

add_library(${CMAKE_PROJECT_NAME} SHARED
        # List C/C++ source files with relative paths to this CMakeLists.txt.
        native-lib.cpp)



target_link_libraries(${CMAKE_PROJECT_NAME}
        # List libraries link to the target library
        android
        libxxx
        log)

执行编译和操作的是一直报错。

报缺少对于的  x86 的so文件。

需要在 build.gradle.kts里添加 abiFilters 的过滤。如果没有添加过滤系统默认,编译全部的abi平台。添加过滤后,系统只编译指定的abi平台。

 defaultConfig {
        ndk {
            abiFilters.add("armeabi-v7a")
            abiFilters.add("arm64-v8a")
        }
    }

预编译和打包,都能顺利完成。

也可以减小apk的安装包。好处多多。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值