問題をどのように説明すればよいか正確にはわかりませんが、基本的には JSoup を使用して HTML を解析し、記事のテキストを引き出しています。私が使用している方法は次のとおりです。
public static String getArticle(String articleLink) {
Log.i("article link", articleLink);
Document doc = null;
try {
doc = Jsoup.connect(articleLink).timeout(10000).get();
} catch (IOException ioe) {
return null;
}
Elements articleBody = doc.select("div.article-body");
Element first = articleBody.first();
return first.text();
}
このコード スニペットを取り出して、Netbeans でサンプル プログラムを作成し、ページへのリンクを渡すと、問題なく記事が返されます。しかし、Android デバイスで実行すると、'return first.text()' で null ポインターが返されます。
これがどうなるかわかりません。アプリは公開され、動作していますが、突然クラッシュし始め、Web ページのレイアウトに何か変更があったと思いましたが、スタンドアロン プログラムを実行し、同じ articleLink を渡したところ、動作しました。私のコンピューターでは問題ありませんが、アンドロイドでは nullPointer を取得します。jsoup も同じバージョンですが、アイデアはありますか?
更新: doc 変数の値は次のとおりです。
<!DOCTYPE html>
<html>
<head>
<title>Redirecting...</title>
<meta http-equiv="refresh" content="0;url=http://m.ncataggies.com/mobile/ViewArticle.dbml? atclid=205823481&DB_MENU_ID=&SPSID=&SPID=&DB_OEM_ID=24500" />
<meta name="ROBOTS" content="NOINDEX,NOFOLLOW" />
</head>
<body>
</body>
</html>
それで、何かが変わった...