Android 2.3.4 では動作しますが、3.0 および 4.0.4 では失敗するという点で、openStream() に問題があります。アプリは単純な RSS リーダーにあり、ここで openStream() を実行すると null 例外が発生します。
protected InputStream getInputStream() {
try {
InputStream myConnection;
myConnection = feedUrl.openStream();
return myConnection;
} catch (IOException e) {
throw new RuntimeException (e);
}
}
URL は次のとおりです: http://europenews.dk/en/headlines/feed/ そのアドレスには動作中の RSS フィードがあります。
制御は、最初の catch に入るのではなく、catch で呼び出し元のコードにすぐに戻ります。呼び出しコードは次のとおりです。
try {
InputStream in = this.getInputStream();
Xml.parse(in, Xml.Encoding.UTF_8, root.getContentHandler());
} catch (Exception e) {
throw new RuntimeException(e);
}
ここで、返された例外が null であることを確認します。
UIスレッドでネットワークアクティビティを行っているために失敗すること、およびこれを別のスレッドにスピンオフする必要があることをどこかで見ました(ラグのためにとにかく行うつもりです)。それは適切なアドバイスでしょうか?