[AS/Android Studio] Gradle Plugin Version 和 Gradle Version 的版本对应关系

Android Gradle 插件版本说明

在更新 Android Studio 时,您可能会收到一并将 Gradle
更新为最新可用版本的提示。您可以选择接受该更新,也可以根据项目的构建要求手动指定版本。


下表列出了各个 Android Gradle 插件版本所需的 Gradle 版本。为了获得最佳性能,您应使用 Gradle
和插件这两者的最新版本。

插件版本 所需的 Gradle 版本
1.0.0 - 1.1.3 2.2.1 - 2.3
1.2.0 - 1.3.1 2.2.1 - 2.9
1.5.0 2.2.1 - 2.13
2.0.0 - 2.1.2 2.10 - 2.13
2.1.3 - 2.2.3 2.14.1+
2.3.0+ 3.3+
3.0.0+ 4.1+
3.1.0+ 4.4+
3.2.0 - 3.2.1 4.6+
3.3.0 - 3.3.3 4.10.1+
3.4.0 - 3.4.3 5.1.1+
3.5.0 - 3.5.4 5.4.1+
3.6.0 - 3.6.4 5.6.4+
4.0.0+ 6.1.1+
4.1.0+ 6.5+
4.2.0+ 6.7.1+
7.0 7.0+
7.1 / 7.1.2 7.2+
7.2 7.3+
7.3 / 7.3.0 7.4+

问题

更新时如果出现类似的错误,可以参考以下解决办法

[AS/Android Studio] Gradle Plugin Version 和 Gradle Version 的版本对应关系_第1张图片

解决办法

重新打开设置Gradle的页面,以7.1版本为例,找到7.1,改为7.1.2或者点击右侧下拉时,会出现当前版本可用的完整版本号。

修改前

[AS/Android Studio] Gradle Plugin Version 和 Gradle Version 的版本对应关系_第2张图片

修改后

[AS/Android Studio] Gradle Plugin Version 和 Gradle Version 的版本对应关系_第3张图片
最后点击 File - Sync Project with Gradle Files 重新编译以下Gradle
[AS/Android Studio] Gradle Plugin Version 和 Gradle Version 的版本对应关系_第4张图片

或者

[AS/Android Studio] Gradle Plugin Version 和 Gradle Version 的版本对应关系_第5张图片

更新 Gradle

在更新 Android Studio 时,您可能会收到将 Android Gradle 插件自动更新为最新可用版本的提示。您可以选择接受该更新,也可以根据项目的构建要求手动指定版本。


您可以在 Android Studio 的 File > Project Structure > Project 菜单中指定插件版本,也可以在顶
级 build.gradle 文件中进行指定。该插件版本将用于在相应 Android Studio 项目中构建的所有模块。

以下示例从 build.gradle 文件中将插件的版本设置为 4.0.0:

buildscript {
    repositories {
        // Gradle 4.1 and higher include support for Google's Maven repo using
        // the google() method. And you need to include this repo to download
        // Android Gradle plugin 3.0.0 or higher.
        google()
        ...
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.0.0'
        //7.0版本的引用
        //classpath 'com.android.tools.build:gradle:7.0.0'
    }
}

注意:不应在版本号中使用动态依赖项(如
‘com.android.tools.build:gradle:2.+’),使用此功能可能会导致意外的版本更新和难以解析版本差异。

**
如果指定的插件版本尚未下载,则 Gradle 会在您下次构建项目时进行下载;或者,您也可以在 Android Studio 菜单栏中依次点击 Tools > Android > Sync Project with Gradle Files 进行下载。

您可以在 Android Studio 的 File > Project Structure > Project 菜单中指定 Gradle
版本,也可以通过在 gradle/wrapper/gradle-wrapper.properties 文件中修改 Gradle
分发引用来指定。

以下示例在 gradle-wrapper.properties 文件中将 Gradle 的版本设置为 6.1.1 或者 7.0.0。

...
distributionUrl = https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
//7.0版本
//distributionUrl = "https\://services.gradle.org/distributions/gradle-7.0.0-all.zip"
...

关于7.0版本编号变更(2020 年 11 月)

我们将更新 Android Gradle 插件 (AGP) 的版本号,以使其更接近底层 Gradle 构建工具。

重要变更如下:

AGP 现在将使用语义版本控制,并且重大变更将在主要版本中发布。

每年将发布一个 AGP 主要版本,与 Gradle 主要版本保持一致。

AGP 4.2 之后的版本为版本 7.0,并且会要求升级到 Gradle 7.x 版。AGP 的每个主要版本都会要求在底层 Gradle 工具中进行主要版本升级。

API 的弃用将提前大约一年进行,同时提供替换功能。废弃的 API 将在大约一年后的下次重大更新期间移除。

1.兼容性

最低版本 默认版本 备注
Gradle 7.0.2 7.0.2 如需了解详情,请参阅更新 Gradle。
SDK Build Tools 30.0.2 30.0.2 安装或配置 SDK Build Tools。
NDK 不适用 21.4.7075529 安装或配置其他版本的 NDK。
JDK 11 11 如需了解详情,请参阅设置 JDK 版本。

2.需要 JDK 11 才能运行 AGP 7.0
使用 Android Gradle 插件 7.0 构建应用时,现在需要 JDK 11 才能运行 Gradle。Android Studio Arctic Fox 捆绑了 JDK 11,并将 Gradle 配置为默认使用 JDK 11,这意味着大多数 Android Studio 用户不需要对项目进行任何配置更改。

如需手动设置 JDK 版本供 Android Studio 中的 AGP 使用,您需要使用 JDK 11 或更高版本。

如果使用的是独立于 Android Studio 的 AGP,请将 JAVA_HOME 环境变量或 -Dorg.gradle.java.home 命令行选项设置为您的 JDK 11 安装目录,以此升级 JDK 版本。

3.Lint 分析任务现在可缓存
AndroidLintAnalysisTask 现在与 Gradle 构建缓存兼容。如果您通过在 gradle.properties 文件中设置 org.gradle.caching=true 来启用构建缓存,lint 分析任务将尽可能从构建缓存中获取其输出。

使用 Android Gradle 插件运行 lint 时,lint 分析任务通常是最大的瓶颈,因此在许多情况下,启用构建缓存可以提高 lint 运行速度。您应该会看到显著的性能提升,例如,如果您有多模块项目,并在使用 CI 服务器运行 lint 之前清理了构建目录。

4.C/C++ 模块现在可引用同一项目中的其他 C/C++ 模块
现在,包含 C/C++ 代码的 Gradle Android 模块可设置为引用其他 Gradle 模块中的头文件和库代码。Prefab 协议用于在 Gradle 模块之间传递头文件和库。

要求

  • 使用方模块必须为 CMake,而非 ndk-build。对 ndk-build 的支持将需要未来 NDK
    更新。发布方模块可以是 CMakendk-build
  • 使用方模块必须在 build.gradle 文件中启用 prefab。
android {
  buildFeatures {
    prefab true
  }
}
  • 发布方模块必须在 build.gradle 文件中启用 prefabPublishing。
android {
  buildFeatures {
    prefabPublishing true
  }
}
  • 使用方模块必须通过在 build.gradle 文件的 dependencies 代码块中添加一行代码来引用发布方模块。例如:
dependencies {
  implementation project(':mylibrary')
}
  • 发布方模块必须使用 prefab 部分公开软件包。例如:
android {
  prefab {
    mylibrary {
      libraryName "libmylibrary"
      headers "src/main/cpp/include"
    }
  }
}
  • 使用方模块的 CMakeLists.txt 文件可以使用 find_package() 来查找提供方模块发布的软件包。例如:
find_package(mylibrary REQUIRED CONFIG)
target_link_libraries(
        myapplication
        mylibrary::mylibrary)
  • 整个应用必须有一个 STL。例如,使用方模块和发布方模块都可以使用 C++ 共享 STL。
   android {
defaultConfig {
        externalNativeBuild {
          cmake {
            arguments '-DANDROID_STL=c++_shared'
          }
        }
      }
    }

如需详细了解如何使用 AGP 配置原生 AAR 使用方和提供方,请参阅原生依赖项与 AGP。

5.settings.gradle 文件中的代码库设置
在 Android Studio Bumblebee 中创建新项目时,顶层 build.gradle 文件包含 plugins 代码块,后跟用于清理构建目录的代码:

plugins {
    id 'com.android.application' version '7.1.0-beta02' apply false
    id 'com.android.library' version '7.1.0-beta02' apply false
    id 'org.jetbrains.kotlin.android' version '1.5.30' apply false
}

task clean(type: Delete) {
  delete rootProject.buildDir
}
  • 以前位于顶级 build.gradle 文件中的代码库设置现在位于 settings.gradle 文件中:
pluginManagement {
  repositories {
    gradlePluginPortal()
    google()
    mavenCentral()
  }
}

dependencyResolutionManagement {
  repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
  repositories {
    google()
    mavenCentral()
  }
}
rootProject.name = 'GradleManagedDeviceTestingNew'
include ':app'

模块级 build.gradle 文件未更改。因此,请使用顶级 build.gradle 文件和 settings.gradle 文件定义将应用于项目中所有模块的 build 配置,或定义适用于 Gradle 本身的代码库和依赖项;使用模块级 build.gradle 文件定义特定于项目中的给定模块的 build 配置。


官方说明地址

你可能感兴趣的:(记录,gradle,android,java,android,studio)