gradle与AGP的关系

flutter旧项目升级Gradle版本

今天运行一个flutter旧版本(2.8.1)项目,报错跑不起来:
exception in phase ‘semantic analysis‘ in source unit ‘_BuildScript_‘ Unsupported class file major version 61

意思是说,开发工具的java版本太高了,而项目配置的Gradle版本(这里是6.7)不支持这个Java版本.
查看本机配置的java版本:

1
java -version

输出:

1
2
3
openjdk version "17.0.10" 2024-01-16
OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)
OpenJDK 64-Bit Server VM (build 17.0.10+0-17.0.10b1087.21-11572160, mixed mode)

发现Java版本是17,而Gradle6.7要求Java版本是11以下,所以要么Gradle版本升级,要么降低Java版本到11.
这里选择升级Gradle版本到7.3.3,在android/gradle/wrapper/gradle-wrapper.properties文件中找到distributionUrl这一行,修改:

1
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip

同时修改在android/build.gradle文件中的gradleVersion为7.2.0:

1
2
3
4
5
6
7
8
9
10
11
buildscript {
ext.kotlin_version = '1.5.31'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.2.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}

注意两者路径不要搞混:

  • Gradle配置路径:android/gradle/wrapper/gradle-wrapper.properties
  • Gradle插件配置路径:android/build.gradle

修改完之后:

运行,新的报错:The option 'android.jetifier.blacklist' is deprecated.

解决办法:

最后,修改compileSdkVersion和targetSdkVersion版本为32

compileSdkVersion和targetSdkVersion区别:

  • compileSdkVersion:编译SDK版本,编译时使用的SDK版本,一般情况下,编译时使用的SDK版本应当和targetSdkVersion保持一致.
  • targetSdkVersion:目标SDK版本,运行时使用的SDK版本,一般情况下,应当选择最新的SDK版本,以获得最新的特性和安全更新.

什么是Gradle?

Gradle是一个自动化构建工具,它可以自动执行各种任务,例如编译,测试,打包,发布,依赖管理等。Gradle基于Groovy语言,支持多种语言,包括Java,Groovy,Kotlin,Scala等。

在使用 Gradle 时,通常需要使用 Java Development Kit (JDK) 来编译、运行和测试你的项目。

什么是Android Gradle Plugin (AGP)?

Android Gradle Plugin (AGP) 是 Gradle 的一部分,它是 Android 项目的构建系统,负责编译,打包,测试,签名和发布 Android 应用。AGP 基于 Gradle,并提供一系列插件来支持 Android 开发。

不做安卓原生开发,不了解这些配置的对应关系,通过搜索,查看官网(https://developer.android.com/build/releases/gradle-plugin?hl=zh-cn),找到如下对应关系:

插件版本 所需最低Gradle版本
8.8 8.10.2
8.7 8.9
8.6 8.7
8.5 8.7
8.4 8.6
8.3 8.4
8.2 8.2
8.1 8.0
8.0 8.0
7.4 7.5
7.3 7.4
7.2 7.3.3
7.1 7.2
7.0 7.0
4.2.0+ 6.7.1
4.1.0+ 6.5+
4.0.0+ 6.1.1+
3.6.0 - 3.6.4 5.6.4+
3.5.0 - 3.5.4 5.4.1+
3.4.0 - 3.4.3 5.1.1+

Android Gradle 插件和 Android Studio 兼容性

Android Studio 构建系统以 Gradle 为基础,并且 Android Gradle 插件 (AGP) 添加了几项专用于构建 Android 应用的功能。下表列出了各个 Android Studio 版本所需的 AGP 版本。

Android Studio 版本 所需的 AGP 版本
Ladybug 功能更新 | 2024.2.2 3.2-8.8
Ladybug | 2024.2.1 3.2-8.7
Koala 功能更新 | 2024.1.2 3.2-8.6
Koala | 2024.1.1 3.2-8.5
Jellyfish | 2023.3.1 3.2-8.4
Iguana | 2023.2.1 3.2-8.3
Hedgehog | 2023.1.1 3.2-8.2
Giraffe | 2022.3.1 3.2-8.1
Flamingo | 2022.2.1 3.2-8.0

特定 Android API 级别所要求的最低工具版本

Android Studio 和 AGP 需要满足最低版本要求才能支持特定 API 级别。

API 级别 最低 Android Studio 版本 最低 AGP 版本
Baklava 预览 Meerkat | 2024.3.1 8.9.0
35 Koala 功能更新 | 2024.2.1 8.6.0
34 Hedgehog | 2023.1.1 8.1.1
33 Flamingo | 2022.2.1 7.2

JDK版本与gradle版本对应关系

Java版本 第一个支持的Gradle版本
18 7.5
17 7.3
16 7.0
15 6.7
14 6.3
13 6.0
12 5.4
11 5.0
10 4.7
9 4.3
8 2.1


gradle与AGP的关系
https://yueyc.top/2025/03/03/gradle/
作者
yueyc
发布于
2025年3月3日
许可协议