ArrayIndexOutOfBoundsException en el KXmlParser de android

Estoy haciendo análisis XML regular en android, y muy rara vez recibo esta excepción y sólo en determinados teléfonos. No han sido capaces de llegar a la raíz de este problema. ¿Alguien tiene una idea de lo que podría estar causando esto?

java.lang.ArrayIndexOutOfBoundsException: src.length=8192 srcPos=1 dst.length=8192 dstPos=0 length=-1 at java.lang.System.arraycopy(Native Method) at org.kxml2.io.KXmlParser.fillBuffer(KXmlParser.java:1489) at org.kxml2.io.KXmlParser.skip(KXmlParser.java:1574) at org.kxml2.io.KXmlParser.parseStartTag(KXmlParser.java:1049) at org.kxml2.io.KXmlParser.next(KXmlParser.java:369) at org.kxml2.io.KXmlParser.next(KXmlParser.java:310) 

Tengo una excepción similar. En mi caso, el xml se había descargado y guardado en el SD. Cuando abrí el archivo, vi que cortó "medio de la frase", por así decirlo. Parecía que había habido un error en la descarga del archivo. Eliminar el archivo y volver a descargar resolvió el problema en esta instancia, pero para evitar problemas futuros del mismo tipo, compruebo ArrayIndexOutOfBoundsException al leer un xml y asumo que el archivo está dañado cuando captura uno.

Obviamente, es sólo una solución bandaid a un problema vagamente definido en este momento. Si descubro más, actualizaré mi respuesta.

Encontré una corrección de errores para Android 4.4 mencionando esto: Cambiar 61530

Por lo tanto, la excepción adecuada que debería estar recibiendo es: especificación de contenido de elemento no terminado , que significa EOF inesperado.

La capa inferior (kxml) está lanzando incorrectamente una excepción no comprobada cuando encuentra mal xml. Para evitar esto, al usar XmlPullParser, reemplace

 try { // use XmlPullParser } catch (XmlPullParserException ex) { ... } 

con

 try { // use XmlPullParser } catch (Exception ex) { ... } 
  • XmlPullParser obtener archivo del sistema de archivos
  • ¿Cómo extracto el texto de un xml anidado usando xmlpullparser en android?
  • Manejando espacios de nombres Xml con XmlPullParser
  • Android ksoap llamada xmlpullparser excepción
  • Error desconocido en xpath (utilizando xmlpullparser)
  • Xml extraer elementos del analizador xml
  • XmlPullParser getAttributeValue devuelve null
  • Analizador XML personalizado de Android falla al resolver el espacio de nombres android
  • XmlPullParser obtener nodos secundarios
  • Obtener stringXmlContent y escribir a continuación, guardado en el archivo .xml almacenado en sdcard en android ¿cómo se puede?
  • ¿Existe una manera de enumerar las funciones XMLPullParser disponibles en el dispositivo Android actual?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.