出现了一个奇怪的问题......我检查了几个网站,但没有发现代码有任何问题......但它返回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作为参数。