Плагин Android Gradle 3.1.0 (март 2018 г.)
Для этой версии плагина для Android требуется следующее:
Минимальная версия | Версия по умолчанию | Примечания | |
---|---|---|---|
Грейдл | 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 (или 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 в свой путь к классам buildscript).