2

Ich habe ein neues Projekt in Android Studio gestartet und meine Einstellungen für die Erstellung von Google-Gadgets konfiguriert. Wenn ich eine android.support.v7.widget.Toolbar zu einem Layout hinzufüge, erhalte ich den folgenden Fehler in der Entwurfsansicht. Beachten Sie, dass dieser Fehler nur angezeigt wird, wenn eine Vorschau mit einer API kleiner als 21 (speziell API 16 - 19) angezeigt wird. Alles funktioniert gut, wenn ich mit API 21 - 24 eine Vorschau zeige.android.support.v7.widget.Toolbar VectorDrawableCompat IllegalStateException bei der Verwendung von support lib 24+

Ich habe eine Reihe von Lösungen angeschaut und ausprobiert, aber keine hat das Problem gelöst. Eine Sache, die ich versuchte, war das Hinzufügen zu meinem grandle:

vectorDrawables.useSupportLibrary = true 

Aber das hat das Problem nicht gelöst. Ich habe versucht, meine compiledSdkVersion auf 23, buildToolsVersion zu 23.0.3 zu konfigurieren. Das hat nichts geändert. Wenn ich die Versionen der Support-Bibliothek auf 23.4.0 oder niedriger ändere, ist das Problem behoben. Sobald ich es wieder auf 24.0.0 oder höher ändere, kehrt es zurück.

Durch das Löschen des Caches, das Bereinigen des Projekts und das erneute Erstellen sowie das Ungültigmachen des Caches und das Neustarten wurde das Problem nicht behoben.

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}" 
} 

Mein Projekt build.gradle wird mit classpath 'com.android.tools.build:gradle:2.1.2'

Dies ist die Symbolleiste xml:

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 

Hier meine app build.gradle ist

<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"/> 

Und schließlich, meine 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> 

Ist das ein Fehler, oder kann ich die Support-Bibliothek 24 oder höher nicht verwenden? Mir sind keine anderen Konfigurationen bekannt, die geändert werden müssen, da die Ausnahme versucht hat, zu steuern.

design preview

Antwort

0

Stellen Sie sicher, gradle Version größer als 2,0

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