Android Gradle plugin 8.7 release notes

The JCenter repository became read-only on March 31st, 2021. For more information, see JCenter service update.

The Android Studio build system is based on Gradle, and the Android Gradle plugin adds several features that are specific to build Android apps. Although the Android Gradle plugin (AGP) is typically updated in lock-step with Android Studio, the plugin (and the rest of the Gradle system) can run independent of Android Studio and be updated separately.

This page explains how to keep your Gradle tools up to date and what's in the recent updates. For the release notes for past Android Gradle plugin versions, see past release notes.

To see what's been fixed in this version of the Android Gradle plugin, see the closed issues.

For a high-level summary of upcoming breaking changes in the Android Gradle plugin, see the Android Gradle plugin roadmap.

For details about how to configure your Android builds with Gradle, see the following pages:

For more information about the Gradle build system, see the Gradle user guide.

Update the Android Gradle plugin

When you update Android Studio, you may receive a prompt to automatically update the Android Gradle plugin to the latest available version. You can choose to accept the update or manually specify a version based on your project's build requirements.

You can specify the plugin version in either the File > Project Structure > Project menu in Android Studio, or the top-level build.gradle.kts file. The plugin version applies to all modules built in that Android Studio project. The following example sets the plugin to version 8.7.0 from the build.gradle.kts file:

Kotlin

plugins {
    id("com.android.application") version "8.7.0" apply false
    id("com.android.library") version "8.7.0" apply false
    id("org.jetbrains.kotlin.android") version "2.0.20" apply false
}

Groovy

plugins {
    id 'com.android.application' version '8.7.0' apply false
    id 'com.android.library' version '8.7.0' apply false
    id 'org.jetbrains.kotlin.android' version '2.0.20' apply false
}

Caution: You should not use dynamic dependencies in version numbers, such as 'com.android.tools.build:gradle:8.7.+'. Using this feature can cause unexpected version updates and difficulty resolving version differences.

If the specified plugin version has not been downloaded, Gradle downloads it the next time you build your project or click File > Sync Project with Gradle Files from the Android Studio menu bar.

Update Gradle

When you update Android Studio, you may receive a prompt to also update Gradle to the latest available version. You can choose to accept the update or manually specify a version based on your project's build requirements.

The following table lists which version of Gradle is required for each version of the Android Gradle plugin. For the best performance, you should use the latest possible version of both Gradle and the plugin.

Plugin versionMinimum required Gradle version
8.78.9
8.68.7
8.58.7
8.48.6
8.38.4
8.28.2
8.18.0
8.08.0
7.47.5

Older versions

Plugin versionRequired Gradle version
7.37.4
7.27.3.3
7.17.2
7.07.0
4.2.0+6.7.1
4.1.0+6.5+
4.0.0+6.1.1+
3.6.0 - 3.6.45.6.4+
3.5.0 - 3.5.45.4.1+
3.4.0 - 3.4.35.1.1+
3.3.0 - 3.3.34.10.1+
3.2.0 - 3.2.14.6+
3.1.0+4.4+
3.0.0+4.1+
2.3.0+3.3+
2.1.3 - 2.2.32.14.1 - 3.5
2.0.0 - 2.1.22.10 - 2.13
1.5.02.2.1 - 2.13
1.2.0 - 1.3.12.2.1 - 2.9
1.0.0 - 1.1.32.2.1 - 2.3

You can specify the Gradle version in either the File > Project Structure > Project menu in Android Studio, or update your Gradle version using the command line. The preferred way is to use the Gradle Wrapper command line tool, which updates the gradlew scripts. The following example sets the Gradle version to 8.7 using the Gradle Wrapper. Note, you need to run this command twice to upgrade both Gradle and the Gradle Wrapper itself (for more information, see Upgrading the Gradle Wrapper).

gradle wrapper --gradle-version 8.7

However this might fail in some cases, for example if you've just updated AGP and it's no longer compliant with the current Gradle version. In this case, you need to edit the Gradle distribution reference in the gradle/wrapper/gradle-wrapper.properties file. The following example sets the Gradle version to 8.7 in the gradle-wrapper.properties file.

...
distributionUrl = https\://services.gradle.org/distributions/gradle-8.7-bin.zip
...

Android Gradle plugin and Android Studio compatibility

The Android Studio build system is based on Gradle, and the Android Gradle plugin (AGP) adds several features that are specific to building Android apps. The following table lists which version of AGP is required for each version of Android Studio.

Android Studio version Required AGP version
Ladybug | 2024.2.1 3.2-8.7
Koala Feature Drop | 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

Older versions

Android Studio version Required AGP version
Electric Eel | 2022.1.1 3.2-7.4
Dolphin | 2021.3.1 3.2-7.3
Chipmunk | 2021.2.1 3.2-7.2
Bumblebee | 2021.1.1 3.2-7.1
Arctic Fox | 2020.3.1 3.1-7.0

For information on what’s new in the Android Gradle plugin, see the Android Gradle plugin release notes.

Minimum versions of tools for Android API level

There are minimum versions of Android Studio and AGP that support a specific API level. Using lower versions of Android Studio or AGP than required by your project's targetSdk or compileSdk could lead to unexpected issues. We recommend using the latest preview version of Android Studio and AGP to work on projects that target preview versions of the Android OS. You can install preview versions of Android Studio alongside a stable version.

The minimum versions of Android Studio and AGP are as follows:

API level Minimum Android Studio version Minimum AGP version
Baklava Preview Meerkat | 2024.3.1 8.9.0
35 Koala Feature Drop | 2024.2.1 8.6.0
34 Hedgehog | 2023.1.1 8.1.1
33 Flamingo | 2022.2.1 7.2

Versioning changes (November 2020)

We are updating the version numbering for Android Gradle plugin (AGP) to more closely match the underlying Gradle build tool.

Here are the notable changes:

  • AGP will now use semantic versioning, and breaking changes will be targeted for major releases.

  • There will be one major version of AGP released per year, aligned with the Gradle major release.

  • The release after AGP 4.2 will be version 7.0 and will require an upgrade to Gradle version 7.x. Every major release of AGP will require a major version upgrade in the underlying Gradle tool.

  • APIs will be deprecated approximately one year in advance, with replacement functionality made available concurrently. Deprecated APIs will be removed approximately one year later during the subsequent major update.

Compatibility

The maximum API level that Android Gradle plugin 8.6 supports is API level 34. Here is other compatibility info:

Minimum version Default version Notes
"Gradle" 8.9 8.9 "To learn more, see updating Gradle."
SDK Build Tools 34.0.0 34.0.0 Install or configure SDK Build Tools.
NDK N/A 27.0.12077973 "Install or configure a different version of the NDK."
JDK 17 17 "To learn more, see setting the JDK version."

Lint behavior change

Starting with Android Gradle Plugin 8.7.0-alpha08, if there is a LintError when running lint using Gradle, the lint analysis task throws an exception. This change prevents rare errors from being cached in the build cache.

Unfortunately, this change breaks builds for projects with genuine LintError instances in their lint baseline files. The error message contains information about which lint checks are causing the problem. In some cases, updating the corresponding library dependency might resolve the problem. If not, you can disable the problematic lint check until the library author fixes it.

Fixed issues

Android Gradle plugin 8.7.0

Fixed Issues
Android Gradle Plugin
AGP should claim that it supports API 35 that is about to ship
AGP 8.5: Many more "mergeDebugResources" tasks are run, slowing down builds
Make ndk 27 the default NDK in AGP.
AGP should claim that it supports API 35 that is about to ship
AGP should claim that it supports API 35 that is about to ship
Running Android lint failed with NoSuchFileException
BuildType#initWith copies postprocessing block but proguard configuration is not applied
Cannot merge for foregroundServiceType tags
Running Android lint failed with NoSuchFileException
Lint
Lint should check for invalid objects used as ViewGroups
"android:host is missing" for uris with null host
KtAnalysisSessionProvider incompatibility with lint checks introduced in 8.7.0-alpha04
"False positive" WrongConstant when using PackageManager.ResolveInfoFlags.of with Kotlin

Android Gradle plugin 8.7.1

Fixed Issues
Android Gradle Plugin
agp docs have a lot of TBD
Lint
AGP 8.6.1: Regression - WrongConstant lint failure when using [Int].toLong() inside a @LongDef in Kotlin
"At least one host must be specified" lint error when setting http or https intent-filter scheme

Android Gradle plugin 8.7.2

Fixed Issues
Lint
AGP 8.7.0 - Lint False Positive RestrictedApi on NavOptionsBuilder.popUpTo
Shrinker (R8)
[R8 8.6.27] Method implementation replaced with `throw null`
Default android proguard files throw a warning when used with current Version of R8
MissingStartupProfileItemsDiagnostic crashes the Gradle client with an out-of-memory error if the message is too large

Android Gradle plugin 8.7.3

Fixed Issues
Lint
Many missing analysis API method warnings when running lint
False positive lint check android.permission.SCHEDULE_EXACT_ALARM is only granted to system apps