cmake_minimum_required(VERSION 3.18.1) project(app CXX) # ========== 关键修正1:源码路径(CMAKE_CURRENT_SOURCE_DIR 就是 src/main/cpp,无需重复加路径) ========== add_library( app SHARED # 直接写文件名即可,否则会找 src/main/cpp/src/main/cpp/xxx.cpp(路径重复) ${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp/opus_recorder.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp/opus_decoder.cpp ) # ========== 关键修正2:正确导入本地 jniLibs 下的 libopus.so ========== # 1. 声明 opus 为「导入库」(SHARED 对应 .so 动态库) add_library(opus SHARED IMPORTED) # 2. 指定 libopus.so 的绝对路径(适配不同架构:arm64-v8a/armeabi-v7a 等) set_target_properties(opus PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libopus.so # 可选:如果需要头文件,添加这行(头文件放 src/main/cpp/include/opus/ 下) # INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/include ) # ========== 关键修正3:链接导入的 opus 库(直接写库名,不用 opus:: 前缀) ========== target_link_libraries( app PRIVATE opus # 链接上面声明的本地 libopus.so log # Android 日志库 )