Android Gradle plugin 9.3.0 (July 2026)

Android Gradle plugin 9.3 is a minor release that includes a variety of new features and improvements.

Compatibility

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

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

Standalone R8 Configuration Analyzer Gradle task

Android Gradle plugin 9.3 introduces a dedicated Gradle task for running the R8 Configuration Analyzer in isolation. The R8 Configuration Analyzer helps you optimize your app's code shrinking and obfuscation rules.

./gradlew :app:analyzeReleaseR8Config

The :app:analyzeReleaseR8Config task generates the report without completing the APK or Bundle compilation pipeline. This provides a shorter feedback loop, which speeds up developer iteration when refining keep rules. Alternatively, you can generate the report automatically by running an R8 release build (such as assembleRelease or bundleRelease).

For more information, see Run the standalone Gradle task for generating report.

Fixed issues

Android Gradle plugin 9.3.0-rc02

Fixed Issues
No public issues were marked as fixed in AGP 9.3.0-rc02

Android Gradle plugin 9.3.0-rc01

Fixed Issues
No public issues were marked as fixed in AGP 9.3.0-rc01

Android Gradle plugin 9.3.0-alpha12

Fixed Issues
Android Gradle Plugin
Build Failure: File handle leak on classes.jar in compile_library_classes_jar prevents rebuilds on Windows until IDE restart
Lint
Lint treats imported Java library as Android project, ignoring compile SDK version

Android Gradle plugin 9.3.0-alpha11

Fixed Issues
No public issues were marked as fixed in AGP 9.3.0-alpha11

Android Gradle plugin 9.3.0-alpha10

Fixed Issues
No public issues were marked as fixed in AGP 9.3.0-alpha10

Android Gradle plugin 9.3.0-alpha09

Fixed Issues
No public issues were marked as fixed in AGP 9.3.0-alpha09

Android Gradle plugin 9.3.0-alpha08

Fixed Issues
No public issues were marked as fixed in AGP 9.3.0-alpha08

Android Gradle plugin 9.3.0-alpha07

Fixed Issues
No public issues were marked as fixed in AGP 9.3.0-alpha07

Android Gradle plugin 9.3.0-alpha06

Fixed Issues
Android Gradle Plugin
JavaDocGenerationTask should use workers

Android Gradle plugin 9.3.0-alpha05

Fixed Issues
Shrinker (R8)
L8 obfucation mapping not included in app mapping.txt

Android Gradle plugin 9.3.0-alpha04

Fixed Issues
Android Gradle Plugin
KMP keepRules source set ignored without it.consumerKeepRules.publish = true

Android Gradle plugin 9.3.0-alpha03

Fixed Issues
Android Gradle Plugin
java.lang.ClassNotFoundException: Didn't find class "com.android.tools.r8.RecordTag" after upgrading gradle to 9.2.0
Lint
Lint error when resource shrinking is disabled

Android Gradle plugin 9.3.0-alpha02

Fixed Issues
Android Gradle Plugin
Feature request: Add native_libs_merge_blame_file support to Android Gradle Plugin
Lint
Missing backtick in AnnotationDetector issue message
Lint error when resource shrinking is disabled

Android Gradle plugin 9.3.0-alpha01

Fixed Issues
Android Gradle Plugin
Isuue with auto generated version codes
AGP: Migrate away from Project as dependency notation
Lint
Lint false positive with UseKtx

Android Gradle plugin 9.3.0

Fixed Issues
No public issues were marked as fixed in AGP 9.3.0

Updated optimization DSL to configure R8 keep rules

Introduces an updated optimization DSL to configure keep rules for R8 optimization, supported by app modules and library module tests. To configure optimization with the updated DSL, use the new optimization block. For apps, configure the optimization block within a build type (such as release or debug) in the app-level build script. The updated optimization DSL makes R8 configuration simpler:

  • Turning on optimization enables both code optimization and optimized resource shrinking.
  • You no longer need to specify the default Android keep rules file.

Note that the legacy DSL continues to be supported.

Introduction of source sets to define keep rules

Place keep rules in the src/<variant>/keepRules/ source set, with the file-suffix .keep. Source sets for keep rules are supported by the updated optimization DSL and the legacy DSL. Using source sets for keep rules is supported in app modules, library modules, and as a way to define consumer rules in Kotlin Multiplatform (KMP) modules.