Остановите рабочий проект с векторными объектами рисования после обновления build.gradle в API < 21

У меня есть рабочий проект.

  • minSdkVersion 17
  • com.android.tools.build:gradle:2.3.3
  • Gradle 4.1
  • Android Studio 3 Canary 6

У меня в файлах Gradle:

defaultConfig {
        vectorDrawables.useSupportLibrary = true
        vectorDrawables.generatedDensities = []
}

Я тоже призываю к активности:

AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)

Приложение работает отлично. Теперь измените на:

  • com.android.tools.build:gradle:3.0.0-alpha6
  • добавить в репозитории google() линия

казнить gradle clean assembleDebug,

Приложение продолжает работать на устройствах с API > 20. Но для API < 21 (эмулятор Google android) происходит сбой при запуске приложения. Я вижу в logcat ошибку: Resources$NotFoundException: Resource ID #0x7f080058 (0x7f080058 - это рисуемое abc_vector_test).

Зачем?

UPD 2017-07-19: Исправлено и выпущено в com.android.tools.build:gradle:3.0.0-alpha7

3 ответа

Решение

Плагин Gradle из версии 3 использует новый AAPT, в котором есть некоторые ошибки.
После прочтения некоторых проблем с трекером ошибок я обнаружил, что в Gradle есть опция для полного отключения AAPT2: android.enableAapt2=false

Также от примечаний к выпуску до alpha5:

AAPT2. Мы продолжаем стабилизировать AAPT2, что обеспечивает дополнительную обработку ресурсов. Если ваша сборка не удалась из-за проблем с обработкой ресурсов, отправьте нам отчет об ошибке. Чтобы временно отключить AAPT, установите android.enableAapt2=false в файле gradle.properties.
Roboelectric в настоящее время не совместим с AAPT2

Я добавляю в gradle.properties линия

android.enableAapt2=false

и это решит мою ошибку.

UPD 2017-07-19: Исправлено и выпущено в com.android.tools.build:gradle:3.0.0-alpha7

Я сталкиваюсь с той же проблемой, понизьте Android Studio до предыдущей версии canary5 и напишите следующее в свой build.gradle

buildscript {
    ...
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-alpha5'
    ...
Другие вопросы по тегам