Flutter集成Firebase后assembleRelease构建APK失败求助
Flutter+Firebase应用构建APK失败求助
我正在开发首个Flutter+Firebase应用,未集成Firebase前曾成功构建过一次。目前开发进度已完成90%,但无法构建APK,也无法修复构建时出现的错误,特此求助。
构建命令及错误输出
C:\Users\Asus\flutter\bin\flutter.bat --no-color build apk Building without sound null safety For more information see https://dart.dev/null-safety/unsound-null-safety Running Gradle task 'assembleRelease'... ../../flutter/.pub-cache/hosted/pub.dartlang.org/charts_flutter-0.12.0/lib/src/chart_container.dart:205:27: Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null. - 'SchedulerBinding' is from 'package:flutter/src/scheduler/binding.dart' ('../../flutter/packages/flutter/lib/src/scheduler/binding.dart'). if (!SchedulerBinding.instance!.hasScheduledFrame) { ^ ../../flutter/.pub-cache/hosted/pub.dartlang.org/charts_flutter-0.12.0/lib/src/chart_container.dart:206:24: Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null. - 'SchedulerBinding' is from 'package:flutter/src/scheduler/binding.dart' ('../../flutter/packages/flutter/lib/src/scheduler/binding.dart'). SchedulerBinding.instance!.scheduleFrame(); ^ ../../flutter/.pub-cache/hosted/pub.dartlang.org/charts_flutter-0.12.0/lib/src/chart_container.dart:209:22: Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null. - 'SchedulerBinding' is from 'package:flutter/src/scheduler/binding.dart' ('../../flutter/packages/flutter/lib/src/scheduler/binding.dart'). SchedulerBinding.instance!.addPostFrameCallback(startAnimationController); ^ ../../flutter/.pub-cache/hosted/pub.dartlang.org/charts_flutter-0.12.0/lib/src/chart_container.dart:232:22: Warning: Operand of null-aware operation '!' has type 'SchedulerBinding' which excludes null. - 'SchedulerBinding' is from 'package:flutter/src/scheduler/binding.dart' ('../../flutter/packages/flutter/lib/src/scheduler/binding.dart'). SchedulerBinding.instance!.addPostFrameCallback(doRebuild); ^
问题分析与解决办法
这些警告来自charts_flutter:0.12.0包,原因是该版本代码在新版本Flutter中使用了不必要的空断言符!——新版本Flutter里SchedulerBinding.instance已被标记为非空类型,无需再加!。
解决步骤:
- 优先升级
charts_flutter到最新稳定版,新版本大概率已修复空安全适配问题。修改pubspec.yaml中的依赖版本后执行flutter pub get。 - 若升级包后问题仍存在或无法升级(如依赖冲突),可使用
dependency_overrides强制拉取修复后的源码:- 在
pubspec.yaml末尾添加:dependency_overrides: charts_flutter: git: url: https://github.com/google/charts.git path: charts_flutter ref: main - 执行
flutter pub get重新拉取依赖。
- 在
- 若构建仍失败,尝试先执行
flutter clean清理缓存,再重新运行flutter build apk。
内容的提问来源于stack exchange,提问作者Djèlì Bi Berci
相关产品推荐
相关产品推荐

