Плагин Android Gradle 9.3.0 (июль 2026 г.)

Плагин Android Gradle 9.3 – это второстепенный выпуск, в который входит ряд новых функций и улучшений.

Совместимость

Максимальный уровень API, поддерживаемый плагином Android Gradle 9.3, – 37. Другая информация о совместимости:

Минимальная версия Версия по умолчанию Примечания
Gradle 9.5.0 9.5.0 Подробнее о том, как обновить Gradle…
Инструменты сборки SDK 36.0.0 36.0.0 Установите или настройте инструменты сборки SDK.
NDK Н/Д 28.2.13676358 Установите или настройте другую версию NDK.
JDK 17 17 Подробнее о том, как задать версию JDK…

Отдельная задача Gradle для анализатора конфигурации R8

В плагине Android Gradle 9.3 появилась специальная задача Gradle для запуска анализатора конфигурации R8 отдельно. Анализатор конфигурации R8 помогает оптимизировать правила сокращения и обфускации кода приложения.

./gradlew :app:analyzeReleaseR8Config

Задача :app:analyzeReleaseR8Config создает отчет, не завершая конвейер компиляции APK или набора App Bundle. Это позволяет быстрее получать обратную связь и ускоряет процесс разработки правил хранения. Также отчет можно создать автоматически, выполнив сборку выпуска R8 (например, assembleRelease или bundleRelease).

Подробнее о том, как запустить отдельную задачу Gradle для создания отчета…

Устраненные проблемы

Плагин Android Gradle 9.3.3

Устраненные проблемы
Плагин Android Gradle
Новый DSL-код оптимизации { enable = true } в AGP 9.3.0 не задает isMinifyEnabled в объекте ApplicationVariant
Dexer (D8)
D8 9.2.14 примерно на 38% медленнее, чем 8.13.6, при выполнении задачи `mergeProjectDexDebug` с одинаковыми входными и выходными данными.
Shrinker (R8)
Режим отладки D8: ArrayIndexOutOfBoundsException: индекс -1 выходит за пределы длины 31 – регрессия между R8 8.8.34 и 8.9.27
VerifyError: Outliner неправильно расширяет регион try-catch, из-за чего регистр не инициализирован
R8 записывает файл `.kotlin_module` с двоеточием в имени, что недопустимо в Windows
Недетерминированность сборки R8: одинаковые входные данные приводят к разным файлам DEX и сопоставления (регрессия из-за сохранения инструкций Assume в LIR)
Сопоставление копий с R8 9.1
AGP иногда создает DEX-файлы, которые не проходят проверку и приводят к сбою приложения при запуске
NullPointerException: не удается вызвать Position.getOutermostCaller(), так как entryPosition имеет значение null
Высокое потребление памяти на правило
R8: VerifyError на Android 4.4

Плагин Android Gradle 9.3.2

Устраненные проблемы
Lint
AGP 9.3 lint crashes on JDK 17 — NoSuchMethodError: java.util.List.removeLast() in bundled intellij-core JavaDocParser

Плагин Android Gradle 9.3.1

Устраненные проблемы
В AGP 9.3.1 не было исправлено ни одной общедоступной проблемы

Плагин Android Gradle 9.3.0-rc02

Устраненные проблемы
В AGP 9.3.0-rc02 не было исправлено ни одной общедоступной проблемы

Плагин Android Gradle 9.3.0-rc01

Устраненные проблемы
В AGP 9.3.0-rc01 не было отмечено как исправленных общедоступных проблем

Плагин Android Gradle 9.3.0-alpha12

Устраненные проблемы
Плагин Android Gradle
Сбой сборки: утечка дескриптора файла в classes.jar в compile_library_classes_jar не позволяет пересобрать проект в Windows до перезапуска IDE
Lint
Lint рассматривает импортированную библиотеку Java как проект для Android, игнорируя версию SDK для компиляции

Плагин Android Gradle 9.3.0-alpha11

Устраненные проблемы
В версии AGP 9.3.0-alpha11 не было исправлено ни одной общедоступной проблемы

Плагин Android Gradle 9.3.0-alpha10

Устраненные проблемы
В AGP 9.3.0-alpha10 не было исправлено ни одной общедоступной проблемы

Плагин Android Gradle 9.3.0-alpha09

Устраненные проблемы
В AGP 9.3.0-alpha09 не было исправлено ни одной общедоступной проблемы

Плагин Android Gradle 9.3.0-alpha08

Устраненные проблемы
В AGP 9.3.0-alpha08 не было исправлено ни одной общедоступной проблемы

Плагин Android Gradle 9.3.0-alpha07

Устраненные проблемы
В версии AGP 9.3.0-alpha07 не было исправлено ни одной общедоступной проблемы

Плагин Android Gradle 9.3.0-alpha06

Устраненные проблемы
Плагин Android Gradle
JavaDocGenerationTask должен использовать рабочих

Плагин Android Gradle 9.3.0-alpha05

Устраненные проблемы
Shrinker (R8)
Сопоставление обфускации L8 не включено в файл mapping.txt приложения

Плагин Android Gradle 9.3.0-alpha04

Устраненные проблемы
Плагин Android Gradle
Набор исходных файлов keepRules KMP игнорируется, если не задано значение true для параметра it.consumerKeepRules.publish

Плагин Android Gradle 9.3.0-alpha03

Устраненные проблемы
Плагин Android Gradle
java.lang.ClassNotFoundException: Didn't find class "com.android.tools.r8.RecordTag" after upgrading gradle to 9.2.0 (java.lang.ClassNotFoundException: не удалось найти класс "com.android.tools.r8.RecordTag" после обновления Gradle до версии 9.2.0)
Lint
Ошибка Lint, когда удаление неиспользуемых ресурсов отключено

Плагин Android Gradle 9.3.0-alpha02

Устраненные проблемы
Плагин Android Gradle
Запрос на добавление функции: поддержка native_libs_merge_blame_file в плагине Android Gradle
Lint
В сообщении об ошибке AnnotationDetector отсутствует обратная кавычка
Ошибка Lint, когда удаление неиспользуемых ресурсов отключено

Плагин Android Gradle 9.3.0-alpha01

Устраненные проблемы
Плагин Android Gradle
Проблема с автоматически сгенерированными кодами версий
AGP: отказ от использования Project в качестве обозначения зависимостей
Lint
Ложноположительный результат проверки Lint с UseKtx

Плагин Android Gradle 9.3.0

Устраненные проблемы
В AGP 9.3.0 не было исправлено ни одной общедоступной проблемы

Обновленный язык DSL для оптимизации, позволяющий настраивать правила сохранения R8

Представлен обновленный DSL оптимизации для настройки правил сохранения для оптимизации R8, поддерживаемый модулями приложений и тестами модулей библиотек. Чтобы настроить оптимизацию с помощью обновленного DSL, используйте новый блок optimization. Для приложений настройте блок optimization в типе сборки (например, release или debug) в скрипте сборки на уровне приложения. Обновленный язык DSL для оптимизации упрощает конфигурацию R8:

  • Включение оптимизации позволяет оптимизировать код и удалять неиспользуемые ресурсы.
  • Вам больше не нужно указывать файл правил хранения Android по умолчанию.

Обратите внимание, что устаревший язык DSL по-прежнему поддерживается.

Введение наборов исходных файлов для определения правил хранения

Правила сохранения должны быть размещены в наборе исходных файлов src/<variant>/keepRules/ с суффиксом файла .keep. Наборы исходных файлов для правил хранения поддерживаются обновленным и устаревшим языками DSL оптимизации. Использование наборов исходных файлов для правил сохранения поддерживается в модулях приложений, модулях библиотек и как способ определения правил потребителя в модулях Kotlin Multiplatform (KMP).