奇妙な問題があります。強制終了の原因となる次のエラーが発生します。
org.apache.harmony.xml.ExpatParser $ ParseException:1行目0列目:org.apache.harmony.xmlのorg.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:508)に要素が見つかりません。 ExpatParser.parseDocument(ExpatParser.java:467)at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:329)at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:286)
[強制終了]ボタンをクリックすると、アクティビティが再作成され、問題なく解析が完了します。AsyncTaskのdoInBackground内で次のコードスニペットを使用しています。
URL serverAddress = new URL(url[0]);
HttpURLConnection connection = (HttpURLConnection) serverAddress.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(true);
connection.setReadTimeout(10000);
connection.connect();
InputStream stream = connection.getInputStream();
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
xr.parse(new InputSource(stream)); // The line that throws the exception
アクティビティが強制終了され、直後に問題なく実行されるのはなぜですか?BufferedInputStreamは何か違いがありますか?私は困惑しています。:(
みなさん、ありがとうございました。
更新:HttpURLConnection.getResponseCode()が頻繁に-1を返すことが判明したため、InputStreamが正しく設定されていない可能性があります。