10

I am porting some Java code that worked fine on my desktop to Android. I have the following code segment:

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

At the last line I get the following exception:

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

When I was testing the code on desktop, it was working fine. Why am I getting this exception on Android and how can I fix it? Thx!

I Z
  • 5,719
  • 19
  • 53
  • 100

3 Answers3

12

My solution was including the following code in my MainActivity:

System.setProperty("org.xml.sax.driver","org.xmlpull.v1.sax2.Driver");
artkoenig
  • 7,117
  • 2
  • 40
  • 61
10

I just ran into the same issue while porting some code to Android. I found that creating my own factory and parser seems to work.

I'd try replacing this:

XMLReader p = XMLReaderFactory.createXMLReader();

With this:

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

Hope this helps :)

IsMakeFire
  • 121
  • 1
  • 6