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

开发App Gallery时遭遇Flutter依赖包编译错误求助

Flutter编译错误处理:间接依赖包兼容性问题

问题场景

开发App Gallery时触发编译失败,未直接引入screenshot和flutter_colorpicker包,但它们被项目其他依赖间接引用,具体报错如下:

/C:/Users/m3ada/AppData/Local/Pub/Cache/hosted/pub.dev/screenshot-2.3.0/lib/screenshot.dart:164:9: 错误:不存在名为'size'的命名参数。
        size: logicalSize,
        ^^^^
/C:/src/flutter/packages/flutter/lib/src/rendering/view.dart:28:9: 上下文:找到该构造函数,但参数不匹配。
  const ViewConfiguration({
        ^^^^^^^^^^^^^^^^^
/C:/Users/m3ada/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_colorpicker-1.0.3/lib/src/colorpicker.dart:659:53: 错误:类'TextTheme'没有定义'bodyText1' getter。
 - 'TextTheme'来自'package:flutter/src/material/text_theme.dart' ('/C:/src/flutter/packages/flutter/lib/src/material/text_theme.dart')。
尝试将名称更正为现有getter的名称,或者定义名为'bodyText1'的getter或字段。
                Theme.of(context).textTheme.bodyText1,
                                        ^^^^^^^^^
/C:/Users/m3ada/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_colorpicker-1.0.3/lib/src/colorpicker.dart:669:53: 错误:类'TextTheme'没有定义'bodyText2' getter。
 - 'TextTheme'来自'package:flutter/src/material/text_theme.dart' ('/C:/src/flutter/packages/flutter/lib/src/material/text_theme.dart')。
尝试将名称更正为现有getter的名称,或者定义名为'bodyText2'的getter或字段。
                Theme.of(context).textTheme.bodyText2,
                                        ^^^^^^^^^
/C:/Users/m3ada/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_colorpicker-1.0.3/lib/src/palette.dart:951:55: 错误:类'TextTheme'没有定义'bodyText1' getter。
 - 'TextTheme'来自'package:flutter/src/material/text_theme.dart' ('/C:/src/flutter/packages/flutter/lib/src/material/text_theme.dart')。
尝试将名称更正为现有getter的名称,或者定义名为'bodyText1'的getter或字段。
                  Theme.of(context).textTheme.bodyText1,
                                          ^^^^^^^^^
/C:/Users/m3ada/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_colorpicker-1.0.3/lib/src/palette.dart:960:57: 错误:类'TextTheme'没有定义'bodyText2' getter。
 - 'TextTheme'来自'package:flutter/src/material/text_theme.dart' ('/C:/src/flutter/packages/flutter/lib/src/material/text_theme.dart')。
尝试将名称更正为现有getter的名称,或者定义名为'bodyText2'的getter或字段。
                    Theme.of(context).textTheme.bodyText2,
                                            ^^^^^^^^^
/C:/Users/m3ada/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_colorpicker-1.0.3/lib/src/palette.dart:1042:58: 错误:类'TextTheme'没有定义'bodyText1' getter。
 - 'TextTheme'来自'package:flutter/src/material/text_theme.dart' ('/C:/src/flutter/packages/flutter/lib/src/material/text_theme.dart')。
尝试将名称更正为现有getter的名称,或者定义名为'bodyText1'的getter或字段。
        Text('Hex', style: Theme.of(context).textTheme.bodyText1),
                                                ^^^^^^^^^
/C:/Users/m3ada/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_colorpicker-1.0.3/lib/src/palette.dart:1045:47: 错误:类'TextTheme'没有定义'bodyText2' getter。
 - 'TextTheme'来自'package:flutter/src/material/text_theme.dart' ('/C:/src/flutter/packages/flutter/lib/src/material/text_theme.dart')。
尝试将名称更正为现有getter的名称,或者定义名为'bodyText2'的getter或字段。
        width: (Theme.of(context).textTheme.bodyText2?.fontSize ?? 14) * 10,
                                        ^^^^^^^^^
Target kernel_snapshot failed: Exception

FAILURE: 构建因异常失败。

* 出错原因:
任务':app:compileFlutterBuildDebug'执行失败。
> 进程'command 'C:\src\flutter\bin\flutter.bat''以非零退出值1结束。

* 尝试:
> 使用--stacktrace选项获取堆栈跟踪。
> 使用--info或--debug选项获取更多日志输出。
> 使用--scan选项获取完整分析信息。

* 获取更多帮助:https://help.gradle.org

BUILD FAILED in 13m 40s

Error: Gradle任务assembleDebug失败,退出代码1

错误原因

  1. screenshot包版本兼容问题:screenshot:2.3.0使用了Flutter已废弃的ViewConfiguration(size: ...)参数,新版Flutter中该构造函数已移除size参数。
  2. flutter_colorpicker包版本兼容问题:flutter_colorpicker:1.0.3使用了Flutter Material库中已废弃的TextTheme.bodyText1/bodyText2属性,这些属性在新版Flutter中已被替换为bodyLarge/bodyMedium。

解决方法

方法一:强制升级依赖包到兼容版本

在项目的pubspec.yaml文件中添加dependency_overrides,强制使用这两个包的最新兼容版本:

dependency_overrides:
  screenshot: ^2.4.0  # 可替换为更高兼容版本
  flutter_colorpicker: ^1.0.6  # 可替换为更高兼容版本

添加后执行命令更新依赖:

flutter pub get

方法二:更新间接依赖的源包

先执行命令查看哪个依赖引入了这两个旧版本包:

flutter pub deps

找到对应的上游依赖后,升级该依赖到最新版本,让它自动引入兼容的screenshot和flutter_colorpicker版本。

方法三:临时降级Flutter版本(不推荐)

如果暂时无法升级依赖,可以将Flutter降级到与旧版本包兼容的版本(如Flutter 3.0以下),但此方法会限制项目使用Flutter新特性,仅作为临时方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 15:01:00