Плагин 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).