Flutter旧项目编译报错:AppBarTheme无textTheme及accentColor参数问题
问题描述
编译旧Flutter项目时出现以下报错:
Running Gradle task 'assembleDebug'... ../../../.pub-cache/hosted/pub.dev/flutter_neumorphic-3.2.0/lib/src/widget/app_bar.dart:183:29: Error: The getter 'textTheme' isn't defined for the class 'AppBarTheme'. - 'AppBarTheme' is from 'package:flutter/src/material/app_bar_theme.dart' ('../../../MycodingLibs/flutter/packages/flutter/lib/src/material/app_bar_theme.dart'). Try correcting the name to the name of an existing getter, or defining a getter or field named 'textTheme'. style: (appBarTheme.textTheme?.headline5 ?? ^^^^^^^^^ ../../../.pub-cache/hosted/pub.dev/flutter_neumorphic-3.2.0/lib/src/widget/app.dart:89:7: Error: No named parameter with the name 'accentColor'. accentColor: theme.variantColor, ^^^^^^^^^^^ ../../../MycodingLibs/flutter/packages/flutter/lib/src/material/theme_data.dart:290:11: Context: Found this candidate, but the arguments don't match. factory ThemeData({ ^ Target kernel_snapshot failed: Exception FAILURE: Build failed with an exception. * Where: Script '/home/corecreater/MycodingLibs/flutter/packages/flutter_tools/gradle/flutter.gradle' line: 1201 * What went wrong: Execution failed for task ':app:compileFlutterBuildDebug'. > Process 'command '/home/corecreater/MycodingLibs/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 17s Exception: Gradle task assembleDebug failed with exit code 1
已尝试更新pubspec.yaml中所有依赖包,Android Studio未检测到代码错误,推测是Flutter版本兼容性问题。
原因分析
- Flutter新版本中移除了
AppBarTheme.textTheme属性,改用titleTextStyle和toolbarTextStyle分别控制标题和工具栏文本样式 accentColor是旧版FlutterThemeData的参数,新版本已被ColorScheme.secondary替代
解决方案
方案1:降级Flutter至兼容版本
flutter_neumorphic 3.2.0是较旧的版本,仅支持Flutter 2.x系列。执行以下命令降级:
flutter downgrade 2.10.5
降级完成后重新获取依赖:
flutter pub get
方案2:升级flutter_neumorphic到兼容新版本的版本
更新pubspec.yaml中的依赖版本为最新兼容版:
flutter_neumorphic: ^3.3.0 # 可根据实际兼容情况选择更高版本
然后执行:
flutter pub get
方案3:手动修改依赖包源码(不推荐)
如果无法升级或降级,可临时修改flutter_neumorphic的源码:
- 找到报错文件
../../../.pub-cache/hosted/pub.dev/flutter_neumorphic-3.2.0/lib/src/widget/app_bar.dart,将appBarTheme.textTheme?.headline5替换为appBarTheme.titleTextStyle - 找到
../../../.pub-cache/hosted/pub.dev/flutter_neumorphic-3.2.0/lib/src/widget/app.dart,将accentColor: theme.variantColor替换为colorScheme: ColorScheme.fromSwatch().copyWith(secondary: theme.variantColor)
注意:手动修改源码会在下次flutter pub get时被覆盖,仅作为临时解决办法。
内容的提问来源于stack exchange,提问作者rocerBob
相关产品推荐
相关产品推荐

