Плагин 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 в свой путь к классам сценария сборки.