Flutter升级后Android Gradle插件与Kotlin版本兼容问题求助
问题:Flutter升级后Android构建因Kotlin版本冲突失败
项目背景
- Flutter版本:从3.7.10升级至3.19.0
- 支持Android、iOS双平台
- 已同步更新pubspec依赖
pubspec.yaml依赖配置
dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter flutter_svg: ^2.0.10+1 provider: ^6.0.5 qr_flutter: ^4.1.0 polygon: ^0.1.0 http: ^1.1.0 shared_preferences: ^2.2.1 url_launcher: ^6.1.14 intl: ^0.18.1 collection: ^1.17.2 add_2_calendar: ^3.0.1 text_scroll: ^0.2.0 ory_client: ^1.2.11 webview_flutter: ^4.7.0 get_it: ^7.6.7 injectable: ^2.3.2 dio: ^5.3.3 one_of: ^1.5.0 flutter_web_auth: ^0.5.0 flutter_libphonenumber: ^2.1.5 flutter_widget_from_html: ^0.14.11 dev_dependencies: flutter_test: sdk: flutter injectable_generator: ^2.4.1 build_runner: ^2.4.6 flutter_lints: ^3.0.1
项目根目录build.gradle配置
buildscript { ext.kotlin_version = '1.7.21' repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:8.1.4' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { google() mavenCentral() } subprojects { afterEvaluate { project -> if (project.hasProperty('android')) { project.android { if (namespace == null) { namespace project.group } } } } } } rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { project.evaluationDependsOn(':app') } tasks.register("clean", Delete) { delete rootProject.buildDir }
构建错误信息
* What went wrong: The Android Gradle plugin supports only Kotlin Gradle plugin version 1.5.20 and higher. The following dependencies do not satisfy the required version: project ':wakelock' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.50 * 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 2s Error: Gradle task assembleDebug failed with exit code 1
已尝试操作与疑问
- 排查wakelock依赖,其自身gradle文件显示
ext.kotlin_version = '1.6.10' - 全局搜索所有
ext.kotlin_version,结果均高于1.3.50 - 已执行
flutter clean、flutter pub get - 参考相关方案后仍无法解决,询问问题根源
解决方案
1. 强制统一子项目Kotlin版本
在根目录build.gradle的subprojects代码块中添加强制Kotlin版本的配置,覆盖所有依赖的Kotlin插件版本:
subprojects { afterEvaluate { project -> if (project.hasProperty('android')) { project.android { if (namespace == null) { namespace project.group } } // 强制设置所有子项目的Kotlin版本为根项目指定的版本 project.plugins.withType(org.jetbrains.kotlin.gradle.plugin.KotlinBasePluginWrapper) { project.ext['kotlin.version'] = rootProject.ext.kotlin_version } } } }
2. 定位并升级旧版本wakelock
执行命令查看完整依赖树,找到引入旧版wakelock的依赖:
flutter pub deps --tree
找到后,在pubspec.yaml中通过dependency_overrides强制升级wakelock至最新兼容版本:
dependency_overrides: wakelock: ^0.6.2 # 替换为当前最新稳定版本
3. 彻底清理后重新构建
执行以下命令清除缓存并重新构建:
flutter clean rm -rf android/.gradle flutter pub get flutter run
内容的提问来源于stack exchange,提问作者Emaborsa
相关产品推荐
相关产品推荐

