环境
- Android Studio 4.1.2
- Gradle 6.5
- NDK 21.1
异常信息
More than one file was found with OS independent path 'lib/{ABI}/xx.so'
问题来源
- 旧的导入方式,该方式会导致找到多个SO异常
- 原因在于高版本Gradle工具会自动导入默认so库路径下所有文件(PS:默认so路径 jniLibs)
- 以下导入方法会导致so重复
add_library(xxx SHARED IMPORTED)
set_target_properties(xxx PROPERTIES IMPORTED_LOCATION ${so的路径})
target_link_libraries(native-lib xxx)
解决方案
include_directories("../include")
set(CMAKE_CXX_FLAGS "-L${CMAKE_SOURCE_DIR}/../jniLibs/arm64-v8a")
target_link_libraries(native-lib log my_util c++_shared)
- 项目结构图

运行效果
- jni接口

- 运行结果
