我已經在Android Studio中啓動了一個新項目並配置了我的gradle構建設置。當我將一個android.support.v7.widget.Toolbar添加到佈局時,在設計視圖中出現以下錯誤。請注意,僅當使用小於21的API(特別是API 16 - 19)進行預覽時纔會顯示此錯誤。一切工作正常,當我預覽API 21 - 24.android.support.v7.widget.Toolbar VectorDrawableCompat IllegalStateException當使用支持庫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或更高?我不知道有任何其他配置會隨着例外嘗試指示而改變。
看來這是他們需要解決的問題。現在我已經用sdk 23保存了我的設置。 – Programmer001