studio android android-xml android-xmlpullparser
link

android - studio - La etiqueta<vector> de la línea#17 del archivo XML binario XmlPullParserException requiere viewportWidth> 0



vector android studio (7)

Evento después de probar las respuestas ya proporcionadas, la aplicación se bloqueaba en algunos dispositivos (principalmente Samsung). Así que junto con eso, intenté cargar vectores dibujables como este

Drawable drawable = AppCompatDrawableManager.get().getDrawable(context, R.drawable.resource_id);

Este AppCompatDrawableManager intenta recuperar de forma interna varios métodos:

Drawable getDrawable(@NonNull Context context, @DrawableRes int resId, boolean failIfNotKnown) { checkVectorDrawableSetup(context); Drawable drawable = loadDrawableFromDelegates(context, resId); if (drawable == null) { drawable = createDrawableIfNeeded(context, resId); } if (drawable == null) { drawable = ContextCompat.getDrawable(context, resId); } if (drawable != null) { // Tint it if needed drawable = tintDrawable(context, resId, failIfNotKnown, drawable); } if (drawable != null) { // See if we need to ''fix'' the drawable DrawableUtils.fixDrawable(drawable); } return drawable; }

Por lo tanto, funciona en todas las versiones de Android y todos los dispositivos (con suerte).

Nota: No intente utilizar el método de Picasso (2.5.2) o Glide (3.7.0) para cargar dibujables vectoriales. Porque usan internamente el getDrawable(@DrawableRes int id) desuso. Lo que resultará en Resources.NotFoundException en algunos dispositivos.

Esta es una pregunta de seguimiento para esta pregunta:

Actualizar la biblioteca de soporte de Android a 23.2.0 causa error: XmlPullParserException archivo XML binario línea # 17 <vector> etiqueta requiere viewportWidth> 0

También actualicé la biblioteca de soporte a 23.2 y comencé a recibir el error:

XmlPullParserException Binary XML file line #17<vector> tag requires viewportWidth > 0

Esa pregunta la resolvió para Android Studio y Gradle. ¿Cómo se puede resolver esto al utilizar Eclipse sin Gradle?


Para gente como yo que todavía usa Eclipse sin Gradle, tuve este error con la biblioteca de soporte de Android r23.2.0 ejecutándose en dispositivos pre-Lollipop (API <21).

Este problema se solucionó en r23.2.1 y pude ejecutar mi proyecto en el nivel 16 de API con éxito.

Esta versión de la biblioteca para Eclipse ya no está disponible a través del Administrador de SDK, sin embargo, puede descargarla manualmente desde este link .


Puede volver a la versión anterior de la biblioteca de appcompat (Solución rápida):

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

O mantén la versión actual de la biblioteca y haz la actualización apropiada a tu archivo de gradle de compilación como lo explica Google en la versión 23.2.0 de la nota de lanzamiento .

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

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

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

No olvide actualizar su herramienta de construcción de gradle a la versión 1.5.0 al menos, o no podría usar los nuevos parámetros como, por ejemplo, las densidades generadas:

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

Más información sobre por qué here


Recibí este mismo error en Android Studio 2.2 después de actualizar mis dependencias de Gradle a las últimas versiones, pero olvidé actualizar el 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 que buildToolsVersion se mantuvo en "22.0.1" así:

buildToolsVersion "22.0.1"

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

buildToolsVersion "24"

ya que ha sido descargado previamente con SDK Manager. Así que verifique el último buildToolsVersion desde el Administrador de SDK y vea si coincide con la versión de dependencias.

Espero que esto ayude a alguien.


Si el problema está en la versión de la aplicación de lanzamiento. Esto resuelto para mi liberación. Creo que porque si pones shrinkResources true las carpetas shrinkResources true creadas no tienen los archivos dibujables

{ .. minifyEnabled true shrinkResources false }


Solo para usuarios nuevos, este problema se soluciona en:

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


Una respuesta anterior a esta pregunta tenía una solución para los desarrolladores que usan Gradle, pero no uso Gradle, así que quiero resumir su respuesta que ayudó a varias personas y lo que finalmente hice. Acepté mi propia respuesta y no la suya, como dije, no uso Gradle, así que no utilicé lo que escribió.

Hice varias cosas para que funcione al final. Las posibles soluciones son:

Primero para los usuarios de Gradle:

1) Revertir la biblioteca de soporte a una versión anterior, ya que esta tiene un error.

2) utilice la compilación ''com.android.support:appcompat-v7:23.2.1'' ya que el error se corrigió allí.

3) para Gradle Plugin 2.0:

android { defaultConfig { vectorDrawables.useSupportLibrary = true } }

O puede usar Grade Build Tools 1.5.0 ( classpath ''com.android.tools.build:gradle:1.5.0'' )

defaultConfig { generatedDensities = [] }

// no hay necesidad de esto con Gradle 2.0

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

Esta es la parte para no usuarios de Gradle:

1) Abra el administrador de SDK.

2) Desinstalado "Android Wear X" (donde X es ARM o Intel) de las API 22 y 23.

3) Seguí teniendo un error de compilación en uno de los estilos de la biblioteca AppCompat. Simplemente los comenté (me arriesgaré a que el dispositivo muy específico no funcione si utiliza ese estilo muy específico).

Después de eso limpié el proyecto y empezó a funcionar.