2

我已經在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或更高?我不知道有任何其他配置會隨着例外嘗試指示而改變。

design preview

回答

0

確保您使用的版本的Gradle大於2.0

buildscript { 
    ... 
    dependencies { 
    classpath 'com.android.tools.build:gradle:2.1.0' 
    } 
} 
相關問題