Flutter项目中Android Studio Gradle版本配置、选择及自动更新方法
一、两个Gradle版本的区别
你看到的这两个版本分属不同组件,本质完全不同:
classpath 'com.android.tools.build:gradle:7.2.2':这是**Android Gradle Plugin(AGP,Android Gradle插件)**的版本。它是Google开发的专属插件,用来让Gradle构建工具支持Android项目的编译、打包、签名等特有流程,是连接Gradle和Android构建逻辑的桥梁。distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip:这是Gradle构建工具本身的版本。它是一套通用项目构建工具,负责处理依赖下载、任务调度等核心构建逻辑,不止适用于Android项目,Java、Kotlin等项目也会用到。
二者有严格的版本兼容关系,比如你用的AGP 7.2.2,官方要求搭配Gradle 7.3+版本,当前的Gradle 7.4是符合兼容要求的。
二、Android Studio中为Flutter选择合适版本的方法
遵循版本兼容对应关系
AGP和Gradle版本必须匹配,当版本不兼容时,Android Studio的Gradle Sync会弹出提示,直接点击提示里的「Upgrade」就能切换到兼容版本。匹配Flutter SDK版本
不同版本的Flutter SDK对AGP和Gradle有最低要求,比如较新的Flutter 3.x版本通常要求AGP 7.0+、Gradle 7.0+。你可以通过Android Studio的Flutter插件提示,确认当前Flutter版本对应的推荐Gradle配置。通过项目结构界面调整
打开Android Studio,进入File > Project Structure > Project(针对Android模块),界面中会自动过滤出兼容的AGP和Gradle版本选项,选好后点击「OK」即可同步配置。
三、自动更新版本的命令
更新Gradle构建工具版本
进入项目的android目录,执行以下命令(Windows系统把./gradlew换成gradlew.bat):./gradlew wrapper --gradle-version=X.X.X将
X.X.X替换为目标兼容版本,执行后会自动更新gradle-wrapper.properties里的distributionUrl。检查并更新AGP版本
可借助第三方插件自动检查更新:- 先在
android/build.gradle的buildscript块中添加插件依赖:buildscript { // ... 其他配置 dependencies { // ... 其他依赖 classpath "com.github.ben-manes:gradle-versions-plugin:0.47.0" } } - 再在
android/app/build.gradle顶部应用插件:apply plugin: "com.github.ben-manes.versions" - 最后执行命令查看所有依赖的更新建议:
./gradlew dependencyUpdates
命令执行后会生成报告,提示AGP的最新兼容版本,你可手动修改
build.gradle里的AGP版本号,或配置插件实现自动更新。- 先在
通过Flutter命令同步更新
执行flutter upgrade命令,会将Flutter SDK升级到最新稳定版,同时自动把Android项目的Gradle和AGP版本同步到当前Flutter版本推荐的兼容配置。
附相关文件代码
android\build.gradle
buildscript { ext.kotlin_version = '1.6.10' // <======= Kotlin version repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.2.2' //<======= Here classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
android\gradle\gradle-wrapper.properties
#Fri Jun 23 08:50:38 CEST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
内容的提问来源于stack exchange,提问作者Davoud

