一、提示缺少 libc++_shared 库
在cmake构建时添加 -DANDROID_STL=c++_shared
参数即可;
在 build.gradle
中配置如下
android {
defaultConfig {
externalNativeBuild {
cmake {
arguments: '-DANDROID_STL=c++_shared'
}
}
}
}
二、当使用第三方 xxx.so 动态库,提示无法加载
- 在cpp目录下新建
libs
文件夹用于放置so动态库 - 在
build.gradle
添加如下配置与jniLibs
关联起来
android {
sourceSets {
main {
jniLibs.srcDirs = ['src/main/cpp/libs']
}
}
}
- 将所用到的so动态库复制到
libs
文件夹下 - 在
CMakeLists.txt
添加动态库
add_library(xxx_lib SHARED IMPORTED)
set_target_properties(xxx_lib PROPERTIES IMPORTED_LOCATION
${CMAKE_SOURCE_DIR}/libs/xxx_lib.so)
三、当所用到so动态库只支持一个平台时构建出错
在构建时只构建所支持的平台如 arm64-v8a
在 build.gradle
中配置如下
android {
defaultConfig {
ndk {
abiFilters 'arm64-v8a'
}
}
}