Flutter调试模式可正常构建 release模式报google_maps_flutter编译错误
问题核心原因
该报错是google_maps_flutter 2.1.0版本与当前使用的Flutter 3.0+ SDK版本不兼容导致:Flutter 3.0及以上版本已将FlutterLifecycleAdapter类从io.flutter.embedding.engine.plugins.lifecycle包中移除,旧版谷歌地图插件仍在调用已删除的类,调试模式下的兼容校验逻辑会跳过该问题,release编译开启严格校验后就会触发构建失败。
可用解决方案
方案一:升级谷歌地图插件版本(优先推荐)
在项目pubspec.yaml文件中调整google_maps_flutter的版本约束到适配Flutter 3.0+的版本,示例配置:google_maps_flutter: ^2.5.0修改完成后依次执行以下命令重新构建即可:
flutter clean flutter pub get方案二:适配旧版本插件(因业务限制无法升级插件时使用)
- 打开项目
android/app/build.gradle文件,在defaultConfig配置块中添加:
multiDexEnabled true- 打开项目
android/build.gradle文件,将ext.kotlin_version升级到1.6.0及以上,同时将compileSdkVersion设置为33及以上,修改后重新编译即可。
- 打开项目
方案三:手动修改插件源码临时修复
找到日志中报错的GoogleMapsPlugin.java文件,做两处修改:- 删除导入
FlutterLifecycleAdapter的代码行 - 将获取生命周期的代码行替换为:
lifecycle = binding.getLifecycle();修改完成后重新打release包即可。
- 删除导入
内容的提问来源于stack exchange,提问作者Bill_The_Coder
相关产品推荐
相关产品推荐

