で、つまづいた。 事の発端は今まで動いていたアプリがOS4.xの端末で動かなくなったとの報告から。 ログイン機能をもつアプリなんだけど、どうも返り値のXMLをパースしている部分でエラーを吐いているご様子。 W/System.err(19538): org.xmlpull.v1.XmlPullParserException: END_TAG expected (position:START_TAG <item>@1:35 in java.io.StringReader@2b01b478) W/System.err(19538): at org.kxml2.io.KXmlParser.exception(KXmlParser.java:273) W/System.err(19538): at org.kxml2.io.KXmlParser.nextText(KXmlParser.java:1444) なるほど、さっぱりわからん。 END_TAGが来ないからご機嫌斜め、みたいな事をおっしゃっている気がする。 色々調べたところ、どうもOS4.0からXmlPullParserクラスのインスタンスが1つに統合されたらしい。 (そもそも2つあること自体知りませんでした) XmlPullParserクラスのインスタンスは2つあり、 1) ExpatPullParser ( android.util.XmlのstaticメソッドnewPullParser()を呼んで得る) 2) KXmlParser (XmlPullParserFactoryのインスタンスを取得し、そっからnewPullParser()を呼んで得る) OS4.xではどちらの方法でインスタンスを取得しても KXmlParserの方が返されるようになっているみたいです。 で、この KXmlParserなんですが、タグが入れ子になっている部分でnextText()を呼び出すと上のエラーを吐く。 <aaa> ←ココ <bbb>opanchu!!</bbb> </aaa> ExpatPullParserちゃんは察してくれてたのに何でこの子は・・・。 で、こうなると何でもかんでもSTART_TAGだ...