Flutter 3.10.3升级至3.22后Android Gradle迁移报错求助
Flutter 3.22 Android构建失败问题排查与解决
问题概述
从Flutter 3.10.3升级到3.22后,iOS端正常运行,但Android端出现两类核心错误:
- 大量非Android平台插件找不到的提示(如
file_selector_linux、firebase_core_web等) - 第三方依赖使用Flutter废弃API导致的编译失败
一、解决插件找不到的错误
原因
新的Flutter Gradle插件会自动管理跨平台插件的引用,但旧缓存或残留配置导致Gradle错误尝试加载非Android平台的插件模块。
解决步骤
- 删除项目根目录下的
.flutter-plugins和.flutter-plugins-dependencies文件 - 执行以下命令清理缓存并重新获取依赖:
flutter clean flutter pub get
二、解决废弃API编译错误
错误1:TextTheme.bodyText2未定义
来自oktoast:3.3.1,Flutter 3.16+已将bodyText2替换为bodyMedium,旧版本包未适配该变更。
错误2:ThemeData.backgroundColor未定义
来自get:4.6.5,Flutter 3.16+已移除ThemeData.backgroundColor,需从colorScheme.background获取对应颜色值。
解决步骤
- 升级
oktoast到兼容Flutter 3.22的版本(推荐>=4.0.0),修改pubspec.yaml:oktoast: ^4.1.0 - 升级
get到兼容Flutter 3.22的版本(推荐>=4.6.6或更高),修改pubspec.yaml:get: ^4.6.6 - 执行
flutter pub get更新依赖
三、Gradle配置微调建议
- 替换废弃仓库源:
jcenter()已停止服务,将android/build.gradle中的allprojects仓库配置修改为:allprojects { repositories { google() mavenCentral() } } - 确认OneSignal插件配置:当前
app/build.gradle中apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'位置正确,但建议升级OneSignal插件版本以适配新Gradle体系。
验证解决结果
执行flutter run -d android启动项目,确认编译错误消失。
内容的提问来源于stack exchange,提问作者CristhianBonetti
相关产品推荐
相关产品推荐

