【发布时间】:2011-01-01 23:46:58
【问题描述】:
出现了一个奇怪的问题...我检查了几个网站,但没有发现代码有任何问题...但它返回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 作为参数。
【问题讨论】:
-
您能粘贴完整的 NPE 堆栈吗?
-
另外,您是否检查过据称错误陈述中的任何引用是否为空?
-
是的,我已经检查过了,我对此充满信心......因为正如我之前所告知的......它对于大约 1 页 xml 的较小文件运行完美......但它为其他人返回 null
-
你没有说你实际检查的 url 不为空。自信不等于知道。
-
我检查得很完美...网址不为空...
标签: xml android parsing nullpointerexception