Actualice la biblioteca de compatibilidad de Android a 23.2.0 porque causa el error: XmlPullParserException Línea de archivo XML binario n. ° 17 La etiqueta <vector> requiere viewportWidth> 0

87

Intento actualizar mi biblioteca de soporte hasta 23.2.0 y me enfrento a este error:

Exception while inflating <vector>
org.xmlpull.v1.XmlPullParserException: Binary XML file line #17<vector> tag requires viewportWidth > 0
at android.support.graphics.drawable.VectorDrawableCompat.updateStateFromTypedArray(VectorDrawableCompat.java:535)
at android.support.graphics.drawable.VectorDrawableCompat.inflate(VectorDrawableCompat.java:472)
at android.support.graphics.drawable.VectorDrawableCompat.createFromXmlInner(VectorDrawableCompat.java:436)
at android.support.v7.widget.AppCompatDrawableManager$VdcInflateDelegate.createFromXmlInner(AppCompatDrawableManager.java:829)
at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:303)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:178)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:173)
at android.support.v7.widget.TintTypedArray.getDrawable(TintTypedArray.java:60)
at android.support.v7.widget.Toolbar.<init>(Toolbar.java:254)
at android.support.v7.widget.Toolbar.<init>(Toolbar.java:196)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:594)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:267)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129)
at com.chotot.vn.v2.activities.MainActivity.onCreate(MainActivity.java:121)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)

Y

FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.chotot.vn.dev/com.chotot.vn.v2.activities.MainActivity}: android.view.InflateException: Binary XML file line #13: Error inflating class android.support.v7.widget.Toolbar
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class android.support.v7.widget.Toolbar
at android.view.LayoutInflater.createView(LayoutInflater.java:620)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:267)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129)
at com.chotot.vn.v2.activities.MainActivity.onCreate(MainActivity.java:121)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:594)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:267)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129)
at com.chotot.vn.v2.activities.MainActivity.onCreate(MainActivity.java:121)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/abc_ic_ab_back_material.xml from drawable resource ID #0x7f020016
at android.content.res.Resources.loadDrawable(Resources.java:2091)
at android.content.res.Resources.getDrawable(Resources.java:695)
at android.support.v7.widget.TintResources.superGetDrawable(TintResources.java:48)
at android.support.v7.widget.AppCompatDrawableManager.onDrawableLoadedFromResources(AppCompatDrawableManager.java:374)
at android.support.v7.widget.TintResources.getDrawable(TintResources.java:44)
at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:323)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:180)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:173)
at android.support.v7.widget.TintTypedArray.getDrawable(TintTypedArray.java:60)
at android.support.v7.widget.Toolbar.<init>(Toolbar.java:254)
at android.support.v7.widget.Toolbar.<init>(Toolbar.java:196)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:594)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:267)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129)
at com.chotot.vn.v2.activities.MainActivity.onCreate(MainActivity.java:121)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #17: invalid drawable tag vector
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:897)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:837)
at android.content.res.Resources.loadDrawable(Resources.java:2087)
at android.content.res.Resources.getDrawable(Resources.java:695)
at android.support.v7.widget.TintResources.superGetDrawable(TintResources.java:48)
at android.support.v7.widget.AppCompatDrawableManager.onDrawableLoadedFromResources(AppCompatDrawableManager.java:374)
at android.support.v7.widget.TintResources.getDrawable(TintResources.java:44)
at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:323)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:180)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:173)
at android.support.v7.widget.TintTypedArray.getDrawable(TintTypedArray.java:60)
at android.support.v7.widget.Toolbar.<init>(Toolbar.java:254)
at android.support.v7.widget.Toolbar.<init>(Toolbar.java:196)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:594)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:267)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129)
at com.chotot.vn.v2.activities.MainActivity.onCreate(MainActivity.java:121)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)

Mi activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <fragment
        android:id="@+id/f_actionbar"
        android:name="com.chotot.vn.fragments.ActionBarFragment"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <android.support.v7.widget.Toolbar
        android:id="@+id/main_tool_bar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:layout_alignParentTop="true"
        android:background="@color/action_bar_bg">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <include
                android:id="@+id/main_action_bar_layout"
                layout="@layout/layout_actionbar_custom_search"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:layout_gravity="top" />

            <LinearLayout
                android:id="@+id/main_action_bar_layout_content"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/main_action_bar_layout"
                android:orientation="vertical" />
        </RelativeLayout>
    </android.support.v7.widget.Toolbar>

    <FrameLayout
        android:id="@+id/layout_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/main_tool_bar" />

</RelativeLayout>

¿Cómo puedo arreglarlo?

señoricetea
fuente
30
¡Estoy empezando a renunciar al desarrollo de Android como un & ** & # $ completo! No puedo creer que haya estado perdiendo gran parte de mi vida como persona individual actualizándome a una nueva versión del SDK para corregir el error que introdujeron en la versión anterior y ahora esto. ARRGGGGHHH!
Neon Warge
1
Me conformé con API v23.1.0: P
Neon Warge
4
teniendo el mismo problema 24.0.0si alguien tiene consejos al respecto, por favor compártelo, realmente probé todo.
wviana
1
@NeonWarge ... He dado la vuelta a la cuadra varias veces. Estas respuestas no me hacen nada. Estoy seguro de que estoy empezando a sentir dolor
Jan Jansz

Respuestas:

55

Use este código en su archivo build.gradle

    //for Gradle Plugin 2.0+  
 android {  
   defaultConfig {  
     vectorDrawables.useSupportLibrary = true  
    }  
 }

Si está utilizando Gradle 1.5, utilizará en su lugar

defaultConfig {
        generatedDensities = []
    }

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

Creo que pueden estar usando un compacto de dibujo vectorial debajo en otra biblioteca que se encuentra aquí

Ajinkya
fuente
7
@ MAY3AM lo siento, no lo probé en Eclipse. Pensé que eclipse está desactualizado por qué lo estás usando.
Ajinkya
6
Lo que finalmente resolvió mi problema fue la respuesta de @ wonglik, para establecer: buildToolsVersion "23.0.2".
Sid
1
Recuerde usar app: srcCompat en lugar de android: src en el xml para usar los elementos de diseño vectoriales en <21 dispositivos.
Timo
1
esto no funciona para mí. mi configuración es la siguiente: buildToolsVersion "23.0.2"; classpath 'com.android.tools.build:gradle:2.0.0-beta6'; defaultConfig {vectorDrawables.useSupportLibrary = true}
Allen Vork
6
Esta solución no me funciona. Could not find property 'vectorDrawables' on ProductFlavor_Decorated
Mulgard
28

También puede actualizar a 23.4.0

dependencies {
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:design:23.4.0'
}

y use una bandera para habilitar manualmente esta funcionalidad:

static
{
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}

dentro de la actividad que utiliza los vectores.

Fuente: Edad de los vectores.

iCantSeeSharp
fuente
la llamada estática dentro de alguna actividad base solucionará el problema para todos los desarrolladores que están luchando con vectorDrawables.useSupportLibrary = true, así que +1 para esta respuesta.
Stoycho Andreev
Oh, ♫ es una especie de magia ♫. Estoy usando la com.android.support:appcompat-v7:25.3.1ejecución de la aplicación en API 19. La configuración predeterminada es, vectorDrawables.useSupportLibrary = truepero fallaba al configurar ImageSwitcher dibujable con un vector. Finalmente, con esta declaración estática, puedo establecer ImageResource con el vector dibujable. Parece que Android SDK es asombroso e imaginativo.
Junior Mayhé
26

Elimine el appcompat gradle ( compile "com.android.support:appcompat-v7:23.2.0") y reemplácelo con el diseño de soporte ( compile 'com.android.support:design:23.1.1') esto resolverá el problema

Abhilash
fuente
¿Estos cambios también se deben hacer con 23.1.1 defaultConfig {generateDensities = []} // Esto lo maneja el complemento de Gradle 2.0+ aaptOptions {additionalParameters "--no-version-vectors"}
Ravi
20
pero ¿y si quieres usar la última biblioteca de appcompact?
Ajinkya
23

En dispositivos anteriores a la piruleta, debe crear un selector para usar VectorDrawable en otro lugar de ImageView

app:srcCompat="@drawable/your_vector_drawable"

Selector:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/your_vector_drawable" />

</selector>

Luego puede pasar este selector, por ejemplo, para TextView drawableLeft / drawableRight en xml

<TextView
        android:gravity="center_vertical"
        android:drawableLeft="@drawable/selector_your_vector_drawable"
        android:drawableStart="@drawable/selector_your_vector_drawable"
        android:drawableRight="@drawable/selector_your_vector_drawable"
        android:drawableEnd="@drawable/selector_your_vector_drawable"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/your_string" />
Nikita Axyonov
fuente
Independientemente de las versiones en build.gradle, esta solución funcionará
PsyGik
Tengo vectorDrawables.useSupportLibrary = true en la aplicación build.gradle y uso compileSdkVersion 25 y buildToolsVersion "25.0.0" y las revisiones de bibliotecas de dependencia 25.0.0 pero no me ayudó a useSupportLibrary, esta es la mejor solución, gracias @ n1ck !!!
mr.boyfox
Esta solución no se rompe en la biblioteca de soporte 25.00 y 24 también, probé en la tableta Android 4.2.2 (no es compatible con Google Play) y esta solución funciona a la perfección.
mr.boyfox
Esto funciona a partir de hoy [buildtools 25+] - nada más funciona para android:drawableattribs en xml: s que hacen referencia a elementos de diseño vectoriales. Es esto o configurar el diseño de fondo mediante programación. ¡Con!
Pär Nils Amsen
22

En lugar de ContextCompat.getDrawable , simplemente use AppCompatDrawableManager.get (). GetDrawable .

Esto debería funcionar en versiones superiores a 23. +

Ivelius
fuente
1
Estoy tratando de usar un vector para una vista personalizada. Esto funciona para mi. Pero solo llame directamente AppCompatDrawableManager.get().getDrawable(getContext(), R.drawable.drawable_xyz);por código. No estoy seguro de cómo funciona si lo declara xml.
Robert
1
este cambio por sí solo solucionó el problema para mí. gracias.
albert c braun
1
Este problema también solucionó mi problema. Gracias amigo !
rana
1
También puede utilizar:AppCompatResources.getDrawable(getContext(), R.drawable.drawable_xyz);
Warcello
19

Utilizando:

compileSdkVersion 24
buildToolsVersion '24.0.1'

Me estrellé en tiempo de ejecución hasta que eliminé la línea

  defaultConfig {
    vectorDrawables.useSupportLibrary = true
  }

de mi aplicación guild.gradle

Esto parece confundir a la versión más reciente del SDK

Espero que esto le ahorre dolores de cabeza a alguien más

Mark Z. Kumler
fuente
Eso me ayuda.
Sergey Shustikov
1
La eliminación de ectorDrawables.useSupportLibrary detuvo los bloqueos en mi dispositivo 4.4.2.
Acapulco
¡Vaya, realmente funciona! Pero, ¿por qué hay un molesto error de pelusa con app:srcCompat To use VectorDrawableCompat, you need to set android.defaultConfig.vectorDrawable.useSupportLibrary = true.? ¡Es muy confuso!
HendraWD
12

Solucioné este problema reemplazando

dependencies {

compile 'com.android.support:appcompat-v7:23.2.0'

compile 'com.android.support:design:23.2.0'
}

con

dependencies {
compile 'com.android.support:appcompat-v7:23.0.1'

compile 'com.android.support:design:23.0.1'
}
Abhijeet Mallick
fuente
10

Una combinación de algunas de las soluciones anteriores funcionó para mí. Aquí esta lo que hice -

Cambiar la versión 1.3.0 de Gradle a 1.5.0 en build.gradledel proyecto como éste

classpath 'com.android.tools.build:gradle:1.5.0'

Actualización de abajo las cosas en build.gradlede aplicación

buildToolsVersion "23.0.2"

Dependencias de módulo actualizadas de 23.2.0 a 23.4.0:

compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
compile 'com.android.support:support-vector-drawable:23.4.0'
compile 'com.android.support:animated-vector-drawable:23.4.0'

Ahora, dependiendo de la versión de Gradle que esté usando, use cualquiera de los siguientes dos fragmentos. Como estoy usando gradle 1.5.0, usé esto:

defaultConfig {
            generatedDensities = []
            }

    aaptOptions {
        additionalParameters "--no-version-vectors"
        }

Pero si está usando Gradle 2.1.0, use esto en su lugar

       defaultConfig {  
         vectorDrawables.useSupportLibrary = true  
         }

Y luego estás listo para irte. Lo probé tanto en xml como programáticamente. En un archivo xml, usé esto en mi ImageView -

app:srcCompat="@drawable/anim_droid"
// where droid_anim is an animated-vector file containing set of animations to animate different paths of the SVG file

Y para hacerlo programáticamente, utilicé esto:

    imageView.setImageResource(R.drawable.anim_droid);
    Drawable drawable = imageView.getDrawable();
    if (drawable instanceof Animatable) {
      ((Animatable) drawable).start();
    }

¡Espero eso ayude! Salud :)

Shubhral
fuente
9

Tuvo el mismo problema. Para mí, la actualización de la versión de Build Tools me ayudó:

buildToolsVersion "23.0.2"
wonglik
fuente
9

Enfréntate al problema de bloqueo en la api 19 cuando actualices a la 23.2.0. Resolví este problema actualizando la versión a 23.2.1. (La última versión cuando responda esta pregunta. Intente actualizar a la última, tal vez Google lo haya solucionado)

compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:support:23.2.1'.
tiegeda
fuente
1
¿Por qué necesitas compilar el conjunto 'com.android.support:support:23.2.1'?
IgorGanapolsky
Lo último por el momento compile 'com.android.support:support-v4:23.3.0' compile 'com.android.support:appcompat-v7:23.3.0' compile 'com.android.support:design:23.3.0 '
Alexandr
7

Asegúrese de usar también la última buildToolsVersionversión (descargue desde el administrador de SDK si es necesario).

Muestra de Gradle:

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.0"
    defaultConfig {
        ...
        vectorDrawables.useSupportLibrary = true
    }
    dependencies {
        ...
        compile 'com.android.support:appcompat-v7:24.0.0'
        ...
    }
}
Mucho desbordamiento
fuente
3
buildToolsVersion "24.0.0" salva mi día :)
NullPointer
Esta es la respuesta correcta para quién está tratando de actualizar para compilar SDK 24 pero aún recibía un error en los dispositivos 4.x.
fillobotto
4

En Gradle (gradle: 2.1.0):

defaultConfig {
    vectorDrawables.useSupportLibrary = true
}

En diseño:

<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:srcCompat="@drawable/you_vector_drawable"/>
bitvale
fuente
3

Tuve este problema, pero actualicé a las versiones build: grade:

classpath 'com.android.tools.build:gradle:1.5.0'

Y:

buildToolsVersion "23.0.2"

¡Éxito!

Ds Digital
fuente
3

Reemplazar android:srcconapp:srcCompat

AnupamChugh
fuente
2

Me sorprendió exactamente este mismo problema cuando construí una nueva versión de mi aplicación. Mi dependencia de appcompact se configuró para actualizarse automáticamente.

compile 'com.android.support:appcompat-v7:23+'

Así que tan pronto como esté disponible una nueva versión (en este caso la versión 23.2.0), reemplazará la anterior con la que estaba construyendo.

Por lo tanto, puede volver a la versión anterior de la biblioteca appcompat (solución rápida):

compile 'com.android.support:appcompat-v7:23.1.1'

O mantenga la versión actual de la biblioteca y use la respuesta de Ajinkya como explica Google en la nota de la versión 23.2.0 . Si opta por la última opción, no olvide actualizar su herramienta de compilación Gradle a la versión 1.5.0 o no podría usar los nuevos parámetros como generatedDensities:

classpath 'com.android.tools.build:gradle:1.5.0'
Gomino
fuente
2

Ante el mismo problema, esta solución lo solucionó.

En tu clase solo haz

public class YourClass extends xxx {
    static {
        AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
    }
    ...
}

y también agregue esto en su archivo gradle si aún no lo está.

defaultConfig {
    vectorDrawables.useSupportLibrary = true
}
Gomez NL
fuente
1

Lo he arreglado configurando ..

compile 'com.android.support:appcompat-v7:24.1.1'
compile 'com.android.support:design:24.1.1' and buildToolsVersion '24.0.0'
Rcc
fuente
Intenté esto pero no funcionó para mí ... Usando Android-IDE
Karyuu Ouji
1

También encontré este problema, lo que hice: cambiar

compileSdkVersion 24
buildToolsVersion "22.0.1"

a

compileSdkVersion 24
buildToolsVersion "24.0.1"
24 极速
fuente
1

Insertar en build.gradle (Módulo: aplicación):

android {  
  defaultConfig {  
    vectorDrawables.useSupportLibrary = true  
  }  
}

dependencies {
    implementation 'com.android.support:appcompat-v7:26.1.0'
}

Después, use el código a continuación, en su AppActivity:

 AppCompatResources.getDrawable(getContext(), R.drawable.ic_your);

Donde esté disponible, use la aplicación: srcCompat en lugar de android: src y android: background , en el archivo de recursos XML

amiron
fuente
0

Tuve este problema, pero la actualización a las versiones siguientes lo solucionó:

classpath 'com.android.tools.build:gradle:1.5.0'

Y:

buildToolsVersion "23.0.2"

Dependencias del módulo:

compile 'com.android.support:appcompat-v7:23.2.0'
compile 'com.android.support:support-v4:23.2.0'

compile 'com.google.android.gms:play-services:8.4.0'
T.Coutlakis
fuente
0

Arreglé el problema reemplazando

compile 'com.android.support:appcompat-v7:23.2.0'
compile 'com.android.support:support-v4:23.2.0'

con

compile 'com.android.support:appcompat-v7:23.0.2'
compile 'com.android.support:support-v4:23.0.2'
AnkitSingh2099
fuente
0

Recibí este mismo error en Android Studio 2.2 después de actualizar mis dependencias de Gradle a las últimas versiones, pero olvidé actualizar buildToolsVersion de mi proyecto.

Cambié:

compile 'com.android.support:appcompat-v7:22.2.1'

a:

compile 'com.android.support:appcompat-v7:24.2.1'

Mientras buildToolsVersion se mantuvo "22.0.1"así:

buildToolsVersion "22.0.1"

Así que todo lo que hice fue actualizar buildToolsVersion a 24 así:

buildToolsVersion "24"

ya que anteriormente se descargó con SDK Manager. Así que verifique lo último buildToolsVersionde SDK Manager y vea si coincide con la versión de dependencias.

Espero que esto ayude a alguien.

Cletus Ajibade
fuente
0

Para mí, lo que funcionó ... fue eliminar la 's' de 'https' en la declaración del espacio de nombres de mi vector xml dibujable.

Ese XML provino de la propia documentación de Google Android. Puede ver en la captura de pantalla que el xmlns es 'http', pero en la versión que se puede copiar a continuación, es 'https'.

Esto detendrá los errores de representación en el visor de activos vectoriales, pero aún no verá nada, por razones que no entiendo. Se supone que debe verse como una llave inglesa.

Si hace clic con el botón derecho en la carpeta de elementos de diseño y "Nuevo -> Activo vectorial", obtendrá un activo de icono de Android que funciona.

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0">
    <path
        android:fillColor="#FF000000"
        android:pathData="M6,18c0,0.55 0.45,1 1,1h1v3.5c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5L11,19h2v3.5c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5L16,19h1c0.55,0 1,-0.45 1,-1L18,8L6,8v10zM3.5,8C2.67,8 2,8.67 2,9.5v7c0,0.83 0.67,1.5 1.5,1.5S5,17.33 5,16.5v-7C5,8.67 4.33,8 3.5,8zM20.5,8c-0.83,0 -1.5,0.67 -1.5,1.5v7c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5v-7c0,-0.83 -0.67,-1.5 -1.5,-1.5zM15.53,2.16l1.3,-1.3c0.2,-0.2 0.2,-0.51 0,-0.71 -0.2,-0.2 -0.51,-0.2 -0.71,0l-1.48,1.48C13.85,1.23 12.95,1 12,1c-0.96,0 -1.86,0.23 -2.66,0.63L7.85,0.15c-0.2,-0.2 -0.51,-0.2 -0.71,0 -0.2,0.2 -0.2,0.51 0,0.71l1.31,1.31C6.97,3.26 6,5.01 6,7h12c0,-1.99 -0.97,-3.75 -2.47,-4.84zM10,5L9,5L9,4h1v1zM15,5h-1L14,4h1v1z"/>

Tanto mi diseño como mi appcompat-v7 usan 23.2.1 y buildToolsVersion 23.0.2.

Esto acaba de entrar. La llave inglesa generada por el archivo de interfaz de 'iconos de material' -> nuevo -> activo vectorial -> icono de material (luego haga clic en el icono y seleccione llave inglesa) es:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0">
    <path
        android:fillColor="#FF000000"
        android:pathData="M22.7,19l-9.1,-9.1c0.9,-2.3 0.4,-5 -1.5,-6.9 -2,-2 -5,-2.4 -7.4,-1.3L9,6 6,9 1.6,4.7C0.4,7.1 0.9,10.1 2.9,12.1c1.9,1.9 4.6,2.4 6.9,1.5l9.1,9.1c0.4,0.4 1,0.4 1.4,0l2.3,-2.3c0.5,-0.4 0.5,-1.1 0.1,-1.4z"/>
</vector>

Esta utilidad en línea me fue bien. Utilice Chrome. Convierte SVG a elementos de diseño vectoriales de Android.

Jan Jansz
fuente
0

el problema era:

/VdcInflateDelegate: Exception while inflating <vector>

solución:

cambiado compileSdkVersion 23 buildToolsVersion "23.0.2" acompileSdkVersion 24 buildToolsVersion "24.0.2"

código de solución:

compileSdkVersion 24
buildToolsVersion '24.0.1'

usando este código anterior resolví el problema

shafiq-ur-rehman
fuente
0

Simplemente agregue la siguiente dependencia en su build.gradle. Esto solucionará tu problema. Estoy usando 25.0.2 buildToolsVersion.

compile 'com.android.support:support-vector-drawable:25.3.0'

Nanda Gopal
fuente
0

Cambié FragmentActivity a AppCompatActivity, el problema está resuelto. Mi entorno es:

compileSdkVersion = 25
buildToolsVersion = "25.0.0"
supportVersion = "25.2.0"
ttdevs
fuente
0

En mi caso esta solución funcionó:

Utilizar

android:theme="@style/TextLabelWhite"

al igual que en su xml. Cambie el estilo principal a su estilo AppTheme, como:

<style name="TextLabelWhite" parent="AppTheme">
Alex Jolig
fuente
0

Aunque tengo el soporte de vector habilitado en mi gradle y tengo la última versión de gradle, herramientas de compilación, biblioteca de soporte y estudio de Android, sigo recibiendo el error.

Aquí una solución para mi caso:

AppCompatDrawableManager.get().getDrawable(getContext(), R.drawable.drawable_xyz);

para suprimir la advertencia de pelusa agregue esto @SuppressLint("RestrictedApi")

Mohamed ALOUANE
fuente
0

intente usar: compile 'com.android.support:design:23.1.1'

en lugar de: compile "com.android.support:appcompat-v7:23.2.0"

FatalMan
fuente
0

También observado en buildToolsVersion '26 .0.2 '

La degradación a buildToolsVersion '25 .0.3 'funcionó .

Para buildToolsVersion '26 .0.2 ': Pruebe AppCompat para widgets Ejemplo: TextView -> android.support.v7.widget.AppCompatTextView (para compatibilidad con versiones anteriores de Android) También se observa en dispositivos de gama baja cuando el dispositivo no puede inflar elementos de diseño debido a la memoria escasez. (Aunque el dibujable existe en su directorio res-> dibujable): Intente cambiar su dibujable por otros menos complejos .

PC Sandeep
fuente