Flutter在Memu模拟器运行报错couldn't find "libflutter.so"如何解决?
问题根因
你仅为release构建类型配置了NDK ABI过滤规则,而报错日志显示你正在运行debug模式安装包,且你使用的Memu模拟器采用32位x86架构:你的配置既未对debug模式生效,也未将x86架构纳入过滤列表,导致打包时未将对应架构的libflutter.so打入安装包,触发运行时加载失败。
解决方案
- 方案一:分别为debug、release构建类型配置ABI过滤,将x86架构加入列表,修改
android/app/build.gradle如下:
android { // 其余原有配置保持不变 buildTypes { release { ndk { abiFilters 'armeabi-v7a','arm64-v8a','x86_64', 'x86' } // 其余release配置保持不变 } debug { ndk { // debug模式优先保留模拟器常用架构,提升构建速度 abiFilters 'x86', 'x86_64', 'armeabi-v7a' } } } }
- 方案二:将ABI过滤配置放到
defaultConfig下,对所有构建类型全局生效:
android { defaultConfig { // 其余原有配置保持不变 ndk { abiFilters 'armeabi-v7a','arm64-v8a','x86_64', 'x86' } } }
- 配置修改完成后,执行
flutter clean清理旧构建缓存,再重新运行项目即可。 - 若问题仍未解决,可进入Memu模拟器的「设置-关于」页面,确认模拟器的处理器架构,确保对应架构已被纳入
abiFilters列表。
内容的提问来源于stack exchange,提问作者Bachir ZABAT
相关产品推荐
相关产品推荐

