私は Android の初心者で、XML RSS フィードからデータを読み取り、それをユーザーに提示する簡単なアプリケーションを作成しました。Android 2.2以降の電話とAndroid 2.1のエミュレーターでは正常に動作しますが、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 の一般的な問題ですか、それとも私のミスですか?? 助けてください。