Flutter集成matrix:^0.22.3时加载libolm.so失败求助
解决方案:Matrix SDK加密初始化时找不到libolm.so的问题
针对你遇到的Error initializing encryption Invalid argument(s): Failed to load dynamic library 'libolm.so': dlopen failed: library "libolm.so" not found错误,以下是几个可行的修复步骤:
手动引入olm预编译库
olm是Matrix加密依赖的底层库,若SDK自动集成失败,可手动添加:- 下载对应CPU架构的
libolm.so文件(可从olm官方编译产物或可信渠道获取) - 在Android项目的
app/src/main/目录下创建jniLibs文件夹,再按架构分目录存放:app/src/main/jniLibs/armeabi-v7a/libolm.so app/src/main/jniLibs/arm64-v8a/libolm.so app/src/main/jniLibs/x86/libolm.so app/src/main/jniLibs/x86_64/libolm.so - 在
app/build.gradle的android块中确认jniLibs路径配置:android { sourceSets { main { jniLibs.srcDirs = ['src/main/jniLibs'] } } }
- 下载对应CPU架构的
调整Android构建的ABI过滤规则
确保你的App构建包含设备对应的CPU架构,避免因架构不匹配导致库加载失败:
在app/build.gradle的defaultConfig块中添加:defaultConfig { ndk { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } }彻底清理并重新构建依赖
除了常规的Flutter清理命令,还要清理Android端的构建缓存:- 执行命令:
flutter clean cd android && ./gradlew clean cd .. && flutter pub get - 重新运行项目:
flutter run
- 执行命令:
确认olm依赖版本匹配
检查pubspec.yaml中是否间接依赖了正确版本的olm包,若没有,可手动添加适配matrix v0.22.3的olm依赖:dependencies: olm: ^3.2.14添加后执行
flutter pub get重新拉取依赖
内容的提问来源于stack exchange,提问作者Ruban
相关产品推荐
相关产品推荐

