Android Studio无法找到项目原生C++库,运行报UnsatisfiedLinkError
解决Android运行时找不到libnvddemo.so的问题
以下是几个排查和解决的关键点:
确认ABI架构支持
Android设备的CPU架构需要和生成的.so库架构匹配。在app模块的build.gradle中显式指定支持的ABI集合,避免只生成默认架构的库:android { defaultConfig { ndk { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } } }验证CMake与模块的关联配置
检查app模块的build.gradle是否正确配置了externalNativeBuild,确保路径指向你的CMakeLists.txt文件:android { externalNativeBuild { cmake { path "src/main/cpp/CMakeLists.txt" // 替换为你的CMakeLists实际路径 version "3.18.1" // 和CMakeLists开头指定的版本保持一致 } } }清理并重建项目
构建缓存可能导致旧的或未生成的库残留,执行以下操作:- 点击Android Studio顶部菜单栏的
Build -> Clean Project - 再执行
Build -> Rebuild Project
或者使用命令行:
./gradlew clean assembleDebug- 点击Android Studio顶部菜单栏的
检查APK是否包含目标库
解压生成的Debug APK,查看libs/[对应ABI]/目录下是否存在libnvddemo.so。如果不存在,说明CMake编译过程未生成该库,此时需要检查:native-lib.cpp是否存在于指定的路径下- CMakeLists.txt中的
SOURCES变量是否正确包含了所有需要编译的源文件
内容的提问来源于stack exchange,提问作者AggelosT
相关产品推荐
相关产品推荐

