Portar a Android: ¿por qué estoy recibiendo "No se puede crear XMLReader por defecto; Es la propiedad del sistema org.xml.sax.driver set? "?

Estoy portando algún código Java que funcionó bien en mi escritorio para Android. Tengo el siguiente segmento de código:

import org.xml.sax.InputSource; import org.xml.sax.XMLReader; import org.xml.sax.helpers.XMLReaderFactory; // ... XMLReader p = XMLReaderFactory.createXMLReader(); 

En la última línea recibo la siguiente excepción:

 Can't create default XMLReader; is system property org.xml.sax.driver set? 

Cuando estaba probando el código en el escritorio, estaba funcionando bien. ¿Por qué recibo esta excepción en Android y cómo puedo solucionarlo? ¡Gracias!

Acabo de ejecutar en el mismo problema al portar algún código a Android. Me di cuenta de que crear mi propia fábrica y analizador parece funcionar.

Intentaría reemplazar esto:

 XMLReader p = XMLReaderFactory.createXMLReader(); 

Con este:

 SAXParserFactory saxParserFactory = SAXParserFactory.newInstance(); SAXParser newSAXParser = saxParserFactory.newSAXParser(); XMLReader p = newSAXParser.getXMLReader(); 

Espero que esto ayude 🙂

Resuelto siguiendo el análisis de un archivo XML utilizando SAX (Tutoriales Java ™> API Java para procesamiento XML (JAXP)> API simple para XML)

Mi solución incluyó el siguiente código en mi MainActivity:

 System.setProperty("org.xml.sax.driver","org.xmlpull.v1.sax2.Driver"); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.