[Android]XmlPullParserException: Unexpected tokenが発生した時の対処方法

Jun 16, 2015   #Android  #dev  #開発 

Androidアプリ開発の際、リソースファイルやHttp経由で取得したUTF-8なxmlファイルをStringReaderで読み込むと、下記の様なエラーが発生する場合、読み込んだファイルの先頭にBOMが付いている可能性があります。

XmlPullParserException
org.xmlpull.v1.XmlPullParserException: Unexpected token (position:TEXT ?@1:2 in java.io.StringReader@***)
     at org.kxml2.io.KXmlParser.next(KXmlParser.java:432)
     at org.kxml2.io.KXmlParser.next(KXmlParser.java:313)
・
・
・

解決方法

StringReaderで読み込む前にBOM付きかチェックして除去することで回避できました。

サンプルコード