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.
Es scheint, dies ist ein Problem, die sie benötigen, zu beheben verwenden. Für jetzt habe ich meine Einstellungen mit SDK 23 behalten. – Programmer001