移植到Android:为什么我得到“无法创建默认的XMLReader;是系统属性org.xml.sax.driver设置?”?

时间:2012-04-15 19:50:50

标签: android sax xmlreader

我正在将一些在我的桌面上工作正常的Java代码移植到Android上。我有以下代码段:

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

在最后一行,我得到以下异常:

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

当我在桌面上测试代码时,它运行正常。为什么我在Android上遇到此异常,我该如何解决? THX!

3 个答案:

答案 0 :(得分:9)

我在将一些代码移植到Android时遇到了同样的问题。我发现创建自己的工厂和解析器似乎有效。

我试着替换它:

XMLReader p = XMLReaderFactory.createXMLReader();

有了这个:

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

希望这会有所帮助:)

答案 1 :(得分:5)

我的解决方案是在我的MainActivity中包含以下代码:

System.setProperty("org.xml.sax.driver","org.xmlpull.v1.sax2.Driver");

答案 2 :(得分:1)