Barra de herramientas: IllegalStateException – configura tu compilación para VectorDrawableCompat

Estoy usando Android Studio 2.1.2. Empecé un nuevo proyecto con minSdkVersion como 19. Mi actividad amplía AppCompatActivity. El proyecto comienza con una actividad vacía utilizando un fragmento.

Cuando se visualiza content_main.xml con la API 24, todo es bueno. Al visualizar la API 19, obtengo el siguiente problema de representación:

The following classes could not be instantiated: - android.support.v7.widget.Toolbar java.lang.IllegalStateException: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat 

He añadido todo lo que encontré relevante para el gradle (2 archivos):

 classpath 'com.android.tools.build:gradle:2.1.2' **vectorDrawables.useSupportLibrary = true** buildToolsVersion "24.0.1" compile 'com.android.support:appcompat-v7:24.1.1' **compile "com.android.support:support-v4:24.1.1"** compile 'com.android.support:design:24.1.1 

Pero sigue apareciendo el error. He encontrado muchas respuestas en Internet. Pero ninguno ayudó. ¿Hay algún problema al utilizar la nueva barra de herramientas con API 19?

Esto funcionó bien para mí

 android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { applicationId "com.example.app" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" generatedDensities = [] } // This is handled for you by the 2.0+ Gradle Plugin aaptOptions { additionalParameters "--no-version-vectors" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } 

}

Observe esto en el código anterior:

 // This is handled for you by the 2.0+ Gradle Plugin aaptOptions { additionalParameters "--no-version-vectors" } 

y

 generatedDensities = [] 

De este problema de google

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

Compruebe este problema para obtener más ayuda.

ACTUALIZAR

Configuró el archivo build.gradle aplicación como sigue

 android { defaultConfig { vectorDrawables.useSupportLibrary = true } } dependencies { compile 'com.android.support:appcompat-v7:23.3.0' } 

Fuente Edad De Los Vectores

En primer lugar, hay dos tipos de archivos gradle.

  1. build.gradle(Project: ProjectName)
  2. build.gradle(Module: app)

Para obtener más información sobre estos dos archivos, revise esta respuesta .

Llegando a su pregunta,

He encontrado un montón de respuestas en la red, pero ninguno ayudó. Estoy utilizando Android Studio 2.1.2, mi actividad se extiende AppCompatActivity y agregó a la gradle (2 archivos) todo lo que encontré relevante: pero sigue apareciendo el error.

De lo que haya publicado, parece que no agregó las cosas correctas en los lugares correctos.

Usted no debe colocar sus dependencias de la aplicación en build.gradle(Project: ProjectName) – Android Studio dice,

// NOTA: no coloque las dependencias de la aplicación aquí; ellos pertenecen

// en los módulos de módulo build.gradle individuales

Por lo tanto, reemplace sus dependencias en build.gradle(Project: ProjectName) por debajo

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

Reemplace sus dependencias en build.gradle(Module: app) por debajo

 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:24.1.1' compile 'com.android.support:design:24.1.1' } 

Después de hacer lo mencionado anteriormente, verá una opción " Sincronizar ahora " en la parte superior derecha. Pinchalo. Android Studio se encargará de las cosas restantes.

También esta pregunta similar es a la suya. Atraviésalo. Puede ayudar.

Añadir:

Construir un gradiente

 defaultConfig { ... vectorDrawables.useSupportLibrary = true ... } 

Y encima de tu clase de Activity :

 static { AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); } 

Y una última cosa poner su vector drawables dentro de cualquier otro drawables como selector , LayerList , etc Algo como a continuación:

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/drawable_vector" /> </selector> 

Y utilice esto arriba dibujable por todas partes en vez de establecer vector drawables directamente. Esto será en otros lugares, así siempre que desee utilizar vector drawables en dispositivos pre-lollipop.

  • El título de android no se mostrará en la barra de herramientas
  • Reemplazar la barra de herramientas para cada fragmento de cajón de navegación
  • Añadir vista personalizada a la derecha de la barra de herramientas
  • Tabla de soporte de diseño de Android Contenido solapado de superposición
  • Cómo centrar y alinear a la izquierda y derecha los iconos de ActionBar en Android
  • Android AppCompat-v21 vs Material puro
  • Los subtítulos de la barra de herramientas no aparecen
  • ¿Es posible tener ScrollingViewBehavior combinado con el comportamiento de Snackbar?
  • Cómo escalar la imagen en Android CollapsingToolbarLayout como WunderList hace
  • Cómo eliminar el relleno superior y inferior de android.support.v7.widget.Toolbar?
  • El reproductor de video apaga el modo en Android usando appcompat-v7
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.