перенос на Android: почему я получаю "не могу создать XmlReader по умолчанию; является системным свойством org.XML.саксофон.драйвер установить?- что?


Я портирую некоторый 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 и как я могу это исправить? Спасибо!

3 3

3 ответа:

Я только что столкнулся с той же проблемой при переносе некоторого кода на Android. Я обнаружил, что создание моей собственной фабрики и парсера, кажется, работает.

Я бы попробовал заменить это:

XMLReader p = XMLReaderFactory.createXMLReader();

С этим:

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

Надеюсь, это поможет :)

Мое решение состояло в том, чтобы включить следующий код в мою основную активность:

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