android.support.v7.widget.Toolbar VectorDrawableCompat IllegalStateException при использовании поддержки lib 24+

Я запустил новый проект в Android Studio и настроил параметры сборки Gradle. Когда я добавляю android.support.v7.widget.Toolbar в макет, я получаю следующую ошибку в режиме конструктора. Имейте в виду, что эта ошибка появляется только при предварительном просмотре с API менее 21 (в частности, API 16 - 19). Все отлично работает, когда я предпросмотр с API 21 - 24.

Я посмотрел на ряд решений и попробовал их, но ни один не решил проблему. Одна вещь, которую я попытался сделать, это добавить это в мой gradle:

vectorDrawables.useSupportLibrary = true  

Но это не решило проблему. Я попытался настроить мой compiledSdkVersion на 23, buildToolsVersion на 23.0.3. Это ничего не изменило. Если я изменю версии библиотеки поддержки на 23.4.0 или ниже, проблема будет решена. Как только я вернусь к 24.0.0 или выше, он вернется.

Очистка кеша, очистка проекта и перестройка, аннулирование кеша и перезапуск не решили проблему.

The following classes could not be instantiated:
- android.support.v7.widget.Toolbar (Open Class, Show Exception, Clear Cache)

Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when in the IDE

Exception Details
java.lang.IllegalStateException: This app has been built with an incorrect configuration.
Please configure your build for VectorDrawableCompat.
at android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:692)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:186)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:181)
at android.support.v7.widget.TintTypedArray.getDrawable(TintTypedArray.java:67)
at android.support.v7.widget.Toolbar.<init>(Toolbar.java:298)
at android.support.v7.widget.Toolbar.<init>(Toolbar.java:229)
...

invalid drawable tag vector

Вот мое приложение build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.1" // https://developer.android.com/studio/releases/build-tools.html

    defaultConfig {
        applicationId "org.path.path"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 0
        versionName "0.0.0"
        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    ext {
        supportLibVersion = '24.0.0' // https://developer.android.com/topic/libraries/support-library/revisions.html
    }

    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile "com.android.support:appcompat-v7:${supportLibVersion}"
    compile "com.android.support:design:${supportLibVersion}"
    compile "com.android.support:cardview-v7:${supportLibVersion}"
    compile "com.android.support:recyclerview-v7:${supportLibVersion}"
}

Мой проект build.gradle использует classpath 'com.android.tools.build:gradle:2.1.2'

Это панель инструментов xml:

<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar_main"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:minHeight="?attr/actionBarSize"
android:elevation="4dp"
android:background="@color/colorPrimary"
app:theme="@style/ActionBarThemeOverlay"
app:popupTheme="@style/ActionBarPopupThemeOverlay"/>

И, наконец, мой styles.xml:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<!-- ActionBar -->
<style name="ActionBarPopupThemeOverlay" parent="ThemeOverlay.AppCompat.Dark" />
<style name="ActionBarThemeOverlay" parent="ThemeOverlay.AppCompat.Dark">
    <item name="android:textColorPrimary">@color/text_on_primary</item>
    <item name="android:textColorSecondary">@color/subtitle_on_primary</item>
</style>

Это ошибка, или я просто не могу использовать версию библиотеки поддержки 24 или выше? Я не знаю ни о каких других конфигурациях, чтобы изменить, поскольку исключение попыталось направить.

предварительный просмотр дизайна

2 ответа

Убедитесь, что вы используете версию Gradle больше, чем 2.0

buildscript {
  ...
  dependencies {
    classpath 'com.android.tools.build:gradle:2.1.0'
  }
}