1

私は 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 の一般的な問題ですか、それとも私のミスですか?? 助けてください。

4

1 に答える 1

0

私は検索を行い、このブログを見つけました。SDK 7 にバグが表示され、そのバグにより qName が空になり、ローカル名が XML 要素の値で埋められることが説明されています。そこに投稿された解決策もあります。

同じ問題に直面する可能性があると思います。

于 2011-07-25T15:51:08.867 に答える