2011-06-15 67 views
1

我是Android新手,我做了一个简单的应用程序,它从XML RSS源读取数据,并将其呈现给用户。它在android 2.2或更高版本的电话以及android 2.1的模拟器上工作正常,但在使用android 2.1的电话上正常化DOM文档时引发异常。在Android 2.1上解析DOM的问题

这里是代码的一部分:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
DocumentBuilder db = dbf.newDocumentBuilder(); 

Document dom = db.parse(in); 
Element docEle = dom.getDocumentElement(); 
dom.normalize(); 

NodeList nl = docEle.getElementsByTagName("item"); 
if (nl != null && nl.getLength() > 0) { 
    //some stuff here 
} 

在与指令dom.normalize线()应用程序将引发以下情况例外:

06-15 17:20:01.161: ERROR/ActivityManager(79): fail to set top app changed! 
06-15 17:20:07.501: ERROR/AndroidRuntime(1199): Uncaught handler: thread refresh_news exiting due to uncaught exception 
06-15 17:20:07.531: ERROR/AndroidRuntime(1199): org.w3c.dom.DOMException 
06-15 17:20:07.531: ERROR/AndroidRuntime(1199):  at org.apache.harmony.xml.dom.InnerNodeImpl.removeChild(InnerNodeImpl.java:184) 
06-15 17:20:07.531: ERROR/AndroidRuntime(1199):  at org.apache.harmony.xml.dom.InnerNodeImpl.normalize(InnerNodeImpl.java:161) 
06-15 17:20:07.531: ERROR/AndroidRuntime(1199):  at com.krawczyk.lech.services.NewsService.doRefreshNews(NewsService.java:231) 
06-15 17:20:07.531: ERROR/AndroidRuntime(1199):  at com.krawczyk.lech.services.NewsService.access$0(NewsService.java:209) 
06-15 17:20:07.531: ERROR/AndroidRuntime(1199):  at com.krawczyk.lech.services.NewsService$1.run(NewsService.java:201) 
06-15 17:20:07.531: ERROR/AndroidRuntime(1199):  at java.lang.Thread.run(Thread.java:1102) 
06-15 17:20:07.551: ERROR/dalvikvm(1199): Unable to open stack trace file '/data/anr/traces.txt': Permission denied 

是它的Android 2.1的一个普遍的问题或者是它我的错??请帮忙。

回答

0

我做了一个搜索,找到这个blog,它描述了一个bug在sdk 7中出现,其中的bug导致qName为空,并且本地名将被XML元素值填充。那里还有一个解决方案。

我相信你可能会遇到同样的问题。