Stay organized with collections
Save and categorize content based on your preferences.
The Android Gradle Plugin (AGP) is the supported build system for Android
applications and includes support for compiling many different types of sources
and linking them together into an application that you can run on a physical
Android device or an emulator.
The following section describes the planned evolution of the AGP’s DSL and API.
As new APIs are introduced in stable releases, old APIs will be marked as
deprecated. Those deprecated APIs will then become unavailable in the next
stable release. Below you will find information about upcoming changes in each
major AGP release.
For a more detailed log of AGP API deprecations or removals, see the AGP API
updates.
AGP 9.0 (Second half of 2025)
New Variant APIs are stable, old APIs are deprecated
The Variant APIs that were incubating in 4.1 and 4.2 are stable.
All of these interfaces are located in the gradle-api artifact.
The previous interfaces and classes used in the old Variant API are now deprecated.
New DSL interfaces are stable, old ones are deprecated
The DSL interfaces that were incubating in 4.1, 4.2 and 7.0 are now stable.
All of these interfaces are located in the gradle-api artifact.
The previous interfaces and classes used in the DSL are now deprecated.
Private internal AGP classes still accessible
Private internal classes from AGP, located in other artifacts, are still
accessible during compilation of build files, but it is not recommended
to use them as they may change in breaking ways at any time.
AGP 10.0 (2026)
Old APIs are removed
All previous interfaces and classes used in the DSL and the old Variant API
are deleted.
The gradle-api artifact is the only artifact you need to access DSL and
variant API interfaces and classes, and should be used when developing
plugins.
Using Gradle metadata, which offers different dependency graphs for compile
and runtime, only gradle-api artifact is available during compilation of
build files.
(Tentative) Access to private internal AGP classes is removed
Dependency on the
gradle
artifact now hides all internal classes and gives compilation access only to the
interfaces and classes available in the gradle-api artifact. This impacts both
plugin and build file compilation.
It isn't possible to manually add a dependency to get access to the internal
classes.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-05-14 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-05-14 UTC."],[],[],null,["# Android Gradle Plugin DSL/API migration timeline\n\nThe Android Gradle Plugin (AGP) is the supported build system for Android\napplications and includes support for compiling many different types of sources\nand linking them together into an application that you can run on a physical\nAndroid device or an emulator.\n\nThe following section describes the planned evolution of the AGP's DSL and API.\nAs new APIs are introduced in stable releases, old APIs will be marked as\ndeprecated. Those deprecated APIs will then become unavailable in the next\nstable release. Below you will find information about upcoming changes in each\nmajor AGP release.\n\nFor a more detailed log of AGP API deprecations or removals, see the [AGP API\nupdates](/studio/releases/gradle-plugin-api-updates).\n| **Note:** The timeframes mentioned below are estimates and are subject to change.\n\nAGP 9.0 (Second half of 2025)\n-----------------------------\n\n**New Variant APIs are stable, old APIs are deprecated**\n\n- The [Variant APIs](https://medium.com/androiddevelopers/new-apis-in-the-android-gradle-plugin-f5325742e614) that were incubating in 4.1 and 4.2 are stable.\n- All of these interfaces are located in the [`gradle-api`](https://maven.google.com/web/index.html#com.android.tools.build:gradle-api) artifact.\n- The previous interfaces and classes used in the old Variant API are now deprecated.\n\n**New DSL interfaces are stable, old ones are deprecated**\n\n- The [DSL interfaces](https://medium.com/androiddevelopers/new-apis-in-the-android-gradle-plugin-f5325742e614) that were incubating in 4.1, 4.2 and 7.0 are now stable.\n- All of these interfaces are located in the `gradle-api` artifact.\n- The previous interfaces and classes used in the DSL are now deprecated.\n\n**Private internal AGP classes still accessible**\n\nPrivate internal classes from AGP, located in other artifacts, are still\naccessible during compilation of build files, but it is **not** recommended\nto use them as they may change in breaking ways at any time.\n\nAGP 10.0 (2026)\n---------------\n\n**Old APIs are removed**\n\n- All previous interfaces and classes used in the DSL and the old Variant API are **deleted**.\n- The `gradle-api` artifact is the only artifact you need to access DSL and variant API interfaces and classes, and should be used when developing plugins.\n- Using Gradle metadata, which offers different dependency graphs for compile and runtime, only `gradle-api` artifact is available during compilation of build files.\n\n**(Tentative) Access to private internal AGP classes is removed**\n\nDependency on the\n[`gradle`](https://maven.google.com/web/index.html#com.android.tools.build:gradle)\nartifact now hides all internal classes and gives compilation access only to the\ninterfaces and classes available in the `gradle-api` artifact. This impacts both\nplugin and build file compilation.\n\nIt isn't possible to manually add a dependency to get access to the internal\nclasses.\n| **Important:** We would like your feedback on the removal of internal AGP classes. Please let us know about your use case, including specific examples of what you need access to, by submitting your feedback on this [tracking issue](https://issuetracker.google.com/219002669)."]]