You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移到空安全后应用无法编译,release模式下flutter build apk执行失败

问题描述

我的应用在调试模式下可以正常构建,但在发布模式下无法构建,flutter build apk命令执行失败,控制台输出如下编译器报错:

D:\All Data\Softwares\Latest Flutter\flutter\.pub-cache\hosted\pub.dartlang.org\google_maps_flutter-2.0.11\android\src\main\java\io\flutter\plugins\googlemaps\GoogleMapsPlugin.java:19: error: cannot find symbol
import io.flutter.embedding.engine.plugins.lifecycle.FlutterLifecycleAdapter;
                                                    ^
  symbol:   class FlutterLifecycleAdapter
  location: package io.flutter.embedding.engine.plugins.lifecycle
D:\All Data\Softwares\Latest Flutter\flutter\.pub-cache\hosted\pub.dartlang.org\google_maps_flutter-2.0.11\android\src\main\java\io\flutter\plugins\googlemaps\GoogleMapsPlugin.java:92: error: cannot find symbol
    lifecycle = FlutterLifecycleAdapter.getActivityLifecycle(binding);
                ^
  symbol:   variable FlutterLifecycleAdapter
  location: class GoogleMapsPlugin
Note: D:\All Data\Softwares\Latest Flutter\flutter\.pub-cache\hosted\pub.dartlang.org\google_maps_flutter-2.0.11\android\src\main\java\io\flutter\plugins\googlemaps\Convert.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: D:\All Data\Softwares\Latest Flutter\flutter\.pub-cache\hosted\pub.dartlang.org\google_maps_flutter-2.0.11\android\src\main\java\io\flutter\plugins\googlemaps\TileProviderController.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
2 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':google_maps_flutter:compileReleaseJavaWithJavac'.

已尝试操作

  • 删除pubspec.lock文件,执行flutter clean后重新运行flutter pub get,问题未解决
  • 找到报错对应的GoogleMapsPlugin.java文件,删除标红的报错代码,依旧没有解决问题

注意:迁移到空安全之前,应用可以正常完成发布构建。

解决方案

这个报错的核心原因是当前使用的google_maps_flutter:2.0.11版本和你的Flutter SDK版本不兼容,FlutterLifecycleAdapter类在你升级后的Flutter SDK中已经被调整了包路径或者移除,刚好迁移空安全的操作触发了版本不匹配问题。按以下步骤操作即可解决:

  1. 优先升级google_maps_flutter依赖版本
    打开项目根目录的pubspec.yaml文件,将google_maps_flutter的版本约束改为适配当前Flutter SDK的兼容版本,比如空安全场景下可以使用^2.5.0或者更高的稳定版本,不要固定死2.0.11版本。
    修改完成后依次执行以下命令清理缓存并拉取新依赖:
flutter clean
flutter pub get

之后重新执行flutter build apk测试构建结果。
2. 检查Android编译配置适配
如果升级依赖后仍有报错,打开android/app/build.gradle文件,将compileSdkVersion参数调整到31及以上,高版本的google_maps_flutter要求编译SDK版本不低于31。
同时确认android/build.gradle中的Android Gradle插件版本和Flutter SDK适配,Flutter 2.x及以上版本建议使用4.1.0及以上的Gradle插件版本,对应gradle-wrapper的版本不低于6.5。
3. 不升级依赖的临时修复方案
如果业务原因暂时不能升级google_maps_flutter版本,可以手动修改报错代码适配新版SDK:
找到报错的GoogleMapsPlugin.java文件,删除import io.flutter.embedding.engine.plugins.lifecycle.FlutterLifecycleAdapter;这行导入代码,再将lifecycle = FlutterLifecycleAdapter.getActivityLifecycle(binding);替换为:

lifecycle = binding.getLifecycle();

修改后重新构建即可正常编译。

内容的提问来源于stack exchange,提问作者Bill_The_Coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 14:48:02