出现了一个奇怪的问题...我检查了几个网站,但找不到任何错误的代码...但是它返回了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是很好的,因为我已经得到了小文件解析的文件,但对于较大的文件,它似乎没有工作时。问题是什么?还是我需要一些较大文件的缓冲?我一无所知,并尝试了除缓冲之外的所有可能性,因为我不知道该编码。
我发现了1件事:输入源的对象在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作为参数。
这里没有足够的信息来帮助您,但是您是否注意到您在外壳程序中打印出了一个名为uri_this的变量,但要解析的解除引用URL?因此,仅因为日志文件显示http://mywebsite.com/products_xml.php?cPath=43,它并不自动表示变量url已初始化并且还包含该字符串。
或者可能是在某些情况下url对象上的openStream()方法(无论它是什么类型)都返回null,而InputSource无法处理在构造函数中传递null的情况。正如我所说-简短的摘要中没有足够的信息来解决您的问题。
干杯。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。