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

Flutter从3.0.1升级到3.10.0后项目构建失败求解决方案

问题

将Flutter从3.0.1升级到3.10.0后,项目无法正常构建,调试控制台报错如下:

/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dev/form_builder_extra_fields-8.3.0/lib/src/fields/form_builder_cupertino_date_time_picker.dart:6:1: Error: 'DatePickerTheme' is imported from both 'package:flutter/src/material/date_picker_theme.dart' and 'package:flutter_datetime_picker_bdaya/src/datetime_picker_theme.dart'.
import 'package:flutter_datetime_picker_bdaya/flutter_datetime_picker_bdaya.dart';
flutter_datetime_picker_bdaya.dart:1
^^^^^^^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_datetime_picker_bdaya-2.0.0/lib/flutter_datetime_picker_bdaya.dart:7:1: Error: 'DatePickerTheme' is imported from both 'package:flutter/src/material/date_picker_theme.dart' and 'package:flutter_datetime_picker_bdaya/src/datetime_picker_theme.dart'.
import 'src/datetime_picker_theme.dart';
^^^^^^^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_datetime_picker_bdaya-2.0.0/lib/flutter_datetime_picker_bdaya.dart:200:31: Error: 'DatePickerTheme' is imported from both 'package:flutter/src/material/date_picker_theme.dart' and 'package:flutter_datetime_picker_bdaya/src/datetime_picker_theme.dart'.
        this.theme = theme ?? DatePickerTheme(),
                              ^^^^^^^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_chips_input-2.0.0/lib/src/chips_input.dart:87:7: Error: The non-abstract class 'ChipsInputState' is missing implementations for these members:
 - TextInputClient.didChangeInputControl
 - TextInputClient.insertContent
 - TextInputClient.performSelector
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>>

      ^^^^^^^^^^^^^^^
/D:/Flutter/flutter/packages/flutter/lib/src/services/text_input.dart:1158:8: Context: 'TextInputClient.didChangeInputControl' is defined here.
  void didChangeInputControl(TextInputControl? oldControl, TextInputControl? newControl) {}
       ^^^^^^^^^^^^^^^^^^^^^
/D:/Flutter/flutter/packages/flutter/lib/src/services/text_input.dart:1117:8: Context: 'TextInputClient.insertContent' is defined here.
  void insertContent(KeyboardInsertedContent content) {}
       ^^^^^^^^^^^^^
/D:/Flutter/flutter/packages/flutter/lib/src/services/text_input.dart:1179:8: Context: 'TextInputClient.performSelector' is defined here.

  void performSelector(String selectorName) {}
       ^^^^^^^^^^^^^^^
Target kernel_snapshot failed: Exception
FAILURE: Build failed with an exception.

* Where:
Script 'D:\Flutter\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 1159

* What went wrong:
Execution failed for task ':app:compileFlutterBuildDebug'.
> Process 'command 'D:\Flutter\flutter\bin\flutter.bat'' 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 6s
Exception: Gradle task assembleDebug failed with exit code 1

项目依赖包:

cupertino_icons: ^1.0.2
firebase_core_platform_interface: ^4.8.0
firebase_core: ^2.13.0
firebase_storage: ^11.2.1
file_picker: ^5.2.6
datetime_picker_formfield: 
firebase_messaging: ^14.6.1
overlay_support: ^2.0.1
cloud_firestore: ^4.7.1
firebase_auth: ^4.6.1
flutter_facebook_auth:
intl: ^0.17.0
csc_picker: 
google_sign_in:
image_picker: ^0.8.5+3
get:
google_maps_flutter: ^2.2.0
flutter_native_splash: ^1.2.0
geolocator: 
flutter_map:
flutter_map_marker_cluster:
http:
geocoding: ^2.1.0
flutter_polyline_points: ^1.0.0
map_location_picker: ^1.1.0

flutter doctor检查结果:

  • [√] Flutter (Channel stable, 3.10.0, on Microsoft Windows [Version 10.0.19044.2965], locale en-US)
  • [√] Windows Version (Installed version of Windows is version 10 or higher)
  • [√] Android toolchain - develop for Android devices (Android SDK version 33.0.0-rc2)
  • [√] Chrome - develop for the web
  • [√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.0.0)
  • [√] Android Studio (version 2021.2)
  • [√] VS Code (version 1.78.2)
  • [√] Connected device (4 available)
  • [√] Network resources

已尝试清理项目、升级pub包和执行flutter pub cache repair,问题仍存在,寻求其他解决方案。

解决方案

1. 解决DatePickerTheme命名冲突

冲突源于flutter_datetime_picker_bdaya包与Flutter 3.10+内置组件重名,处理方式:

  • 升级form_builder_extra_fields到兼容Flutter 3.10的最新版本,新版本通常会修复这类命名冲突。
  • 若升级后仍有问题,在pubspec.yaml中用dependency_overrides强制指定flutter_datetime_picker_bdaya的最新兼容版本:
    dependency_overrides:
      flutter_datetime_picker_bdaya: ^2.1.0 # 替换为实际最新兼容版本
    

2. 解决ChipsInputState方法缺失问题

flutter_chips_input 2.0.0版本不兼容Flutter 3.10的TextInputClient接口变更,处理方式:

  • 升级flutter_chips_input到最新版本,新版本会实现新增的三个方法;若没有兼容版本,替换为功能类似的包(如flutter_tagging)。
  • 临时修复:找到本地缓存的报错文件C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_chips_input-2.0.0/lib/src/chips_input.dart,在ChipsInputState类中添加空实现:
    @override
    void didChangeInputControl(TextInputControl? oldControl, TextInputControl? newControl) {}
    
    @override
    void insertContent(KeyboardInsertedContent content) {}
    
    @override
    void performSelector(String selectorName) {}
    
    注意:此方法仅为临时方案,下次flutter pub get会覆盖修改,优先推荐升级或替换包。

3. 补充操作

  • 执行flutter clean,删除pubspec.lock文件后再运行flutter pub get,确保所有依赖重新拉取兼容版本。
  • 给所有未指定版本的依赖(如datetime_picker_formfield、csc_picker)添加兼容Flutter 3.10的版本号,避免拉取旧版本引发兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 18:44:58