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)
- Xml getText devolver null - Android
- KXmlParser lanza la excepción "Símbolo inesperado" al inicio de RSS pasing
- Android: El mejor analizador para analizar datos XML
- Cómo analizar un feed RSS con XmlPullParser?
- XmlPullParser - Analizar etiqueta analizada
- Cómo crear un AttributeSet en Android?
- ¿Cómo puedo analizar XML android?
- XmlPullParserException al analizar un archivo de recursos en Android
- Android org.xmlpull.v1.XmlPullParserException al analizar XML
- Diferencia entre el analizador XML SAX, analizador de tracción y analizador de DOM en android
- Cómo obtener un valor de nodo con XmlPullParser
- ¿Por qué Android XmlPullParser REALMENTE lento en mi dispositivo más antiguo?
- XmlPullParserException sólo en ICS
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) { ... }
- Cómo agregar elipses al texto StaticLayout cuando supera su altura?
- SQLiteDatabase.insert () devuelve rowid incorrecto para tablas virtuales