需要实现一个串口操作的命令。
供应商提供了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的安装包。好处多多。