Flutter 升级 Gradle 和 Gradle Plugin

目前 Flutter3.0 默认的 Gradle 版本是 7.5,当然也有可能会更早一些。有时候因为某些需求要升级 Gradle 到新版本。本文以升级到 8.2.1 版本举例,会讲述 Flutter 项目中升级 Gradle 和 Gradle Plugin 以及 android tools、设置镜像源等问题。

Gradle Plugin 版本匹配

不同的 Gradle 版本所匹配的 Gradle Plugin 版本是不一样的。官方给了个表格插件版本对应

根据官方说明,Gradle Plugin 的 7.4.2 是一个主要版本,并且兼容 Gradle 8.2.1。

Flutter 工程修改

升级 Gradle 版本很容易,在android/gradle/wrapper/gradle-wrapper.properties文件中,将distributionUrl改为新版本的地址,以 8.2.1 举例为https\://services.gradle.org/distributions/gradle-8.2.1-all.zip。此时该文件如下:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-all.zip

升级 Gradle Plugin 并设置镜像

首先修改android/settings.gradle文件如下,增加阿里云的 Gradle Plugin 镜像源。

pluginManagement {
    repositories {
        maven{
            url 'https://maven.aliyun.com/repository/gradle-plugin'
        }
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}

再修改android/build.gradle文件,增加阿里云镜像源,并将 Gradle Plugin 版本设置为 7.4.0

buildscript {
    ext.kotlin_version = '1.7.10'
    repositories {
        maven {
            url 'https://maven.aliyun.com/repository/public/'
        }
        maven {
            url 'https://maven.aliyun.com/repository/central'
        }
        maven{
            url 'https://maven.aliyun.com/repository/gradle-plugin'
        }
        google()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:7.4.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        maven {
            url 'https://maven.aliyun.com/repository/public/'
        }
        maven {
            url 'https://maven.aliyun.com/repository/central'
        }
        maven{
            url 'https://maven.aliyun.com/repository/gradle-plugin'
        }
        google()
        mavenCentral()
    }
}

编译项目,会自动升级新版本。