Android Gradle Plugin 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.Поскольку локальные модули не могут зависеть от тестового 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 в свой путь к классам в скриптах сборки.