求助:如何构建无错误FluffyChat Android APK?遇CMake及libolm.so报错
解决FluffyChat Android构建时flutter_olm的libolm.so编译失败问题
可行解决方案
1. 匹配Android NDK版本
flutter_olm对NDK版本有严格要求,推荐使用NDK 25.2.9519653:
- 打开Android Studio的SDK Manager,切换到SDK Tools标签
- 勾选「Show Package Details」,找到「Android NDK (Side by side)」选择对应版本安装
- 在项目的
android/local.properties中添加ndk.dir=/你的NDK安装路径/25.2.9519653(替换为实际路径)
2. 彻底清理缓存后重构
执行以下命令清除所有缓存文件,再重新构建:
flutter clean rm -rf android/.gradle android/app/build flutter pub get cd android && ./gradlew clean && cd .. flutter build apk --release
3. 修正flutter_olm的CMake配置
找到flutter_olm模块的CMakeLists.txt(路径通常是~/.pub-cache/hosted/pub.dartlang.org/flutter_olm-<版本号>/android/CMakeLists.txt,如果是项目本地依赖则在packages/flutter_olm/android/下),添加以下配置确保拉取兼容的olm源码:
set(OLM_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/olm) if(NOT EXISTS ${OLM_SOURCE_DIR}) execute_process(COMMAND git clone https://gitlab.matrix.org/matrix-org/olm.git ${OLM_SOURCE_DIR}) execute_process(COMMAND git checkout 3.2.12 WORKING_DIRECTORY ${OLM_SOURCE_DIR}) endif()
修改后重新同步项目并构建
4. 排除本地libolm的干扰
你本地安装的libolm3是桌面环境版本,Android构建需要交叉编译版本:
- 检查并移除系统中可能存在的
OLM_DIR等相关环境变量 - 确保构建时不会调用本地安装的libolm
5. 拉取完整子模块
FluffyChat依赖olm子模块,执行以下命令拉取所有依赖子模块:
git submodule update --init --recursive
内容的提问来源于stack exchange,提问作者Aquila Oliveira
相关产品推荐
相关产品推荐

