3

Android で Jsoup を使用していくつかのサイトに接続しようとすると、java.lang.OutOfMemoryError 例外がスローされます。例:

Jsoup.connect("http://www.xbox360achievements.org/game/grand-theft-auto-iv/guide/").get();

この問題を回避するにはどうすればよいでしょうか?

Jスープ1.7.1

4

2 に答える 2

0

get メソッドはすべてをメモリに格納しているように見えるため、大きなコンテンツをロードすると OOME が取得されます

私が見ることができるものから、あなたのオプションは次のとおりです。

  1. 小さいドキュメントをロードしてください。ロードしようとしているドキュメントは大きいようです。メモリは、特にハンドヘルド デバイスでは貴重です
  2. ドキュメントをチャンクで前処理し、一度に 1 つずつ処理して、メモリをあまり使用しないようにする
  3. メモリ容量が大きい環境でプログラムを実行する
  4. 別のライブラリを使用するか、独自のライブラリを作成しない場合は、Jsoup がバッファリングされた IO を実行できるかどうかを確認してください。バッファリングされた IO を使用すると、データのチャンクを一度に読み取って処理するだけなので、メモリ スペースをあまり使用しません。
于 2012-12-19T23:23:20.733 に答える