Flutter应用构建失败求助:第三方包版本冲突引发报错
解决Flutter构建失败:第三方包与SDK版本冲突问题
问题描述
我在构建Flutter应用时遭遇了构建失败,错误集中在flutter_form_builder、flutter_chips_input、flushbar等第三方包以及Flutter services模块,推测是包版本与当前Flutter SDK不兼容导致的冲突。
错误日志
ERROR CODE ../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_form_builder-3.7.2/lib/src/fields/form_builder_range_slider.dart:21:9: Error: Type 'RangeSemanticFormatterCallback' not found. final RangeSemanticFormatterCallback semanticFormatterCallback; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_chips_input-1.6.1/lib/src/chips_input.dart:62:7: Error: The non-abstract class 'ChipsInputState' is missing implementations for these members: - TextInputClient.currentAutofillScope - TextInputClient.currentTextEditingValue - TextInputClient.performPrivateCommand - TextInputClient.showAutocorrectionPromptRect Try to either - provide an implementation, - inherit an implementation from a superclass or mixin, - mark the class as abstract, or - provide a 'noSuchMethod' implementation. class ChipsInputState<T> extends State<ChipsInput<T>> ^^^^^^^^^^^^^^^ ../flutter/packages/flutter/lib/src/services/text_input.dart:805:22: Context: 'TextInputClient.currentAutofillScope' is defined here. AutofillScope? get currentAutofillScope; ^^^^^^^^^^^^^^^^^^^^ ../flutter/packages/flutter/lib/src/services/text_input.dart:793:25: Context: 'TextInputClient.currentTextEditingValue' is defined here. TextEditingValue? get currentTextEditingValue; ^^^^^^^^^^^^^^^^^^^^^^^ ../flutter/packages/flutter/lib/src/services/text_input.dart:814:8: Context: 'TextInputClient.performPrivateCommand' is defined here. void performPrivateCommand(String action, Map<String, dynamic> data); ^^^^^^^^^^^^^^^^^^^^^ ../flutter/packages/flutter/lib/src/services/text_input.dart:823:8: Context: 'TextInputClient.showAutocorrectionPromptRect' is defined here. void showAutocorrectionPromptRect(int start, int end); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../flutter/.pub-cache/hosted/pub.dartlang.org/flushbar-1.9.1/lib/flushbar_route.dart:273:8: Error: The method 'FlushbarRoute.install' has more required arguments than those of overridden method 'OverlayRoute.install'. void install(OverlayEntry insertionPoint) { ^ ../flutter/packages/flutter/lib/src/widgets/routes.dart:46:8: Context: This is the overridden method ('install'). void install() { ^ ../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_form_builder-3.7.2/lib/src/fields/form_builder_range_slider.dart:21:9: Error: 'RangeSemanticFormatterCallback' isn't a type. final RangeSemanticFormatterCallback semanticFormatterCallback; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../flutter/.pub-cache/hosted/pub.dartlang.org/flushbar-1.9.1/lib/flushbar_route.dart:281:18: Error: Too many positional arguments: 0 allowed, but 1 found. Try removing the extra positional arguments. super.install(insertionPoint); ^ FAILURE: Build failed with an exception. * Where: Script '/Users/gabriel/Git/flutter/packages/flutter_tools/gradle/flutter.gradle' line: 900 * What went wrong: Execution failed for task ':app:compileFlutterBuildDebug'. > Process 'command '/Users/gabriel/Git/flutter/bin/flutter'' finished with non-zero exit value 1 * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 32s
问题原因分析
这些错误本质上都是旧版本第三方包未适配当前Flutter SDK的API变更:
flutter_form_builder@3.7.2使用了已被Flutter SDK移除的RangeSemanticFormatterCallback类型flutter_chips_input@1.6.1没有实现Flutter SDK新增的TextInputClient接口方法flushbar@1.9.1的install方法参数与Flutter SDK中OverlayRoute.install的定义不匹配
解决方法
我通过升级flutter_form_builder到兼容当前Flutter SDK的版本成功解决了核心问题,具体步骤如下:
- 打开项目根目录的
pubspec.yaml - 找到
flutter_form_builder的依赖配置,将版本从3.7.2替换为一个更高的、兼容当前SDK的版本(建议使用最新稳定版,或者参考包的官方文档确认适配的SDK版本范围) - 执行命令
flutter pub get重新拉取依赖 - 重新尝试构建项目
如果后续flutter_chips_input或flushbar仍报错,同样需要将它们升级到适配当前Flutter SDK的版本,因为这些旧版本包也存在API兼容问题。
内容的提问来源于stack exchange,提问作者CertifiedCodeChef
相关产品推荐
相关产品推荐

