Возникла странная проблема ... Я проверил несколько сайтов, но не смог найти ничего плохого в коде ... Но он возвращает NullPointerException
...
try {
SAXParserFactory f = SAXParserFactory.newInstance();
SAXParser parser = f.newSAXParser();
XMLReader reader = parser.getXMLReader();
reader.setContentHandler(handler);
System.out.println(uri_this);
reader.parse(new InputSource(url_this.openStream())); // i get nullpointerexception here
} catch (NullPointerException e) {
System.out.println(e);
}
В операторе catch я поймал NullPointerException
и заставил его напечатать ошибку.
ContentHandler
- это хорошо, потому что у меня есть проанализированные файлы для маленьких файлов, но для больших файлов, похоже, не работает. В чем проблема? Или мне нужна буферизация для больших файлов? Я не в курсе и перепробовал все возможности, кроме буферизации, потому что я не знаю, как это кодировать.
Я понял одну вещь: объект источника ввода освобождается до того, как reader.parse
может закончиться. Я не понимаю, почему это происходит.
LogCat
дает следующее (только ошибочная часть):
01-06 15:12:27.145: INFO/System.out(319): http://mywebsite.com/products_xml.php?cPath=43
01-06 15:12:31.094: DEBUG/dalvikvm(319): GC freed 4031 objects / 203424 bytes in 189ms
01-06 15:12:31.505: DEBUG/dalvikvm(100): GC freed 3326 objects / 190192 bytes in 283ms
01-06 15:12:34.274: DEBUG/dalvikvm(319): GC freed 1153 objects / 80432 bytes in 146ms
01-06 15:12:34.646: INFO/System.out(319): java.lang.NullPointerException
Я получаю URL "url_this" 4m конструктор в качестве аргументов.