Плагин Android Gradle 3.1.0 (март 2018 г.)
Для работы этой версии плагина Android требуются:
| Минимальная версия | Версия по умолчанию | Примечания | |
|---|---|---|---|
| Gradle | 4.4 | 4.4 | Подробнее о том, как обновить Gradle… |
| Инструменты сборки SDK | 27.0.3 | 27.0.3 | Установите или настройте инструменты сборки SDK. Обратите внимание, что вам больше не нужно указывать версию инструментов сборки с помощью свойства android.buildToolsVersion – плагин по умолчанию использует минимально необходимую версию. |
Новый компилятор DEX-файлов D8
По умолчанию Android Studio теперь использует новый компилятор DEX под названием D8. Компиляция DEX – это процесс преобразования байт-кода .class в байт-код .dex для Android Runtime (или Dalvik в более ранних версиях Android). По сравнению с предыдущим компилятором DX, D8 работает быстрее и создает файлы DEX меньшего размера, при этом обеспечивая такую же или более высокую производительность приложения.
D8 не должен влиять на ваш обычный рабочий процесс разработки приложений. Однако если у вас возникнут проблемы, связанные с новым компилятором, сообщите нам об ошибке. Вы можете временно отключить D8 и использовать DX, добавив в файл gradle.properties проекта следующие строки:
android.enableD8=false
Для проектов, в которых используются функции языка Java 8, по умолчанию включено инкрементное десахаривание. Чтобы отключить его, укажите в файле gradle.properties проекта следующее:
android.enableIncrementalDesugaring=false.
Пользователи предварительной версии. Если вы уже используете предварительную версию D8, обратите внимание, что теперь она компилируется с библиотеками, включенными в инструменты сборки SDK, а не в JDK. Поэтому, если вы обращаетесь к API, которые есть в JDK, но отсутствуют в библиотеках инструментов сборки SDK, вы получаете ошибку компиляции.
Изменения в поведении
-
При создании нескольких APK-файлов, каждый из которых предназначен для определенного ABI, по умолчанию больше не генерируются APK-файлы для следующих ABI:
mips,mips64иarmeabi.Если вы хотите создавать APK-файлы, предназначенные для этих ABI, вам необходимо использовать NDK r16b или более ранней версии и указать ABI в файле
build.gradle, как показано ниже:splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
-
Плагин Android теперь удаляет из кеша сборки записи, которые старше 30 дней.
-
При передаче значения
"auto"вresConfigбольше не выполняется автоматический выбор строковых ресурсов для упаковки в APK. Если вы продолжите использовать"auto", плагин упакует все строковые ресурсы, которые предоставляет ваше приложение и его зависимости. Вместо этого вам нужно указать все языки, которые вы хотите включить в APK-файл. -
Поскольку локальные модули не могут зависеть от тестового APK приложения, добавление зависимостей в инструментальные тесты с помощью конфигурации
androidTestApiвместоandroidTestImplementationприводит к тому, что Gradle выдает следующее предупреждение:WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
Исправления
- Исправлена проблема, из-за которой Android Studio неправильно распознавал зависимости в составных сборках.
- Исправлена ошибка синхронизации проекта, возникающая при многократной загрузке плагина Android в одной сборке (например, когда несколько подпроектов включают плагин Android в classpath buildscript).