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:
- (Barra de herramientas) findViewById (R.id.tool_bar) devuelve NULL
- Mostrar contenido en la barra de herramientas
- Superposición de contenido por encima de AppBarLayout utilizando nuevo diseño de material
- Desplazamiento con la barra de herramientas y las pestañas
- Estilizar la vista de búsqueda de android y la lista desplegable en la barra de acciones
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?
- Establecer un subtítulo en mi barra de herramientas de un fragmento
- Cuál es la diferencia entre windowActionBar y android: windowActionBar
- Pantalla completa Con la barra de herramientas y edittext en la parte inferior de Android
- ¿Cómo hacer que la barra de herramientas en Android tenga un ancho completo?
- ¿Cómo mantener visible la barra de herramientas con adjustPan?
- CollapsingToolbarLayout título como elemento compartido de transición
- Android TabLayout no se alineará a la derecha una vez Se reanuda la actividad
- ¿Cómo puedo arreglar el estilo Spinner para Android 4.x colocado en la parte superior de la barra de herramientas
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.
-
build.gradle(Project: ProjectName)
-
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.
- ¿Cómo dividir el texto en 2 textviews como si hubiera 1?
- ¿Cuál es la nueva implementación del diálogo de solicitudes de aplicaciones en Android Facebook SDK 4.0.1