2011-07-25 26 views
3

このエラーが発生しますか?メモリ不足エラーが発生するのはなぜですか?

07-25 17:04:00.796: ERROR/AndroidRuntime(420): Caused by: java.lang.OutOfMemoryError 
07-25 17:04:00.796: ERROR/AndroidRuntime(420):  at org.apache.http.impl.io.AbstractSessionInputBuffer.init(AbstractSessionInputBuffer.java:79) 
07-25 17:04:00.796: ERROR/AndroidRuntime(420):  at org.apache.http.impl.SocketHttpClientConnection.createSessionInputBuffer(SocketHttpClientConnection.java:83) 

毎回私はこの方法を実行しよう:

public void getImages() throws IOException{ 


    DefaultHttpClient httpclient = new DefaultHttpClient(); 

    HttpGet httppost = new HttpGet("https://sites.google.com/site/theitrangers/images/webImages.txt"); 
    HttpResponse response; 

     response = httpclient.execute(httppost); 


      HttpEntity ht = response.getEntity(); 

      BufferedHttpEntity buf = new BufferedHttpEntity(ht); 

      InputStream is = buf.getContent(); 


      BufferedReader r = new BufferedReader(new InputStreamReader(is)); 

      StringBuilder total = new StringBuilder(); 
      String line; 
      while ((line = r.readLine()) != null) { 
       total.append(line + "\n"); 

       imageUrl = total.toString(); 
       Log.v("getImage1", "Retreived image"); 
      } 
    } 

すべてこの方法は、ウェブサイト上でホストされているテキストファイルからURLをretreivingさやっています。

編集:コードの行は、デバッグが私を指しているところです。いつ私はメモリエラーから抜け出す。

public void getImages() throws IOException{ 


    DefaultHttpClient httpclient = new DefaultHttpClient(); 

    HttpGet httppost = new HttpGet("https://sites.google.com/site/theitrangers/images/webImages.txt"); 
    HttpResponse response; 

**Specifically here:** response = httpclient.execute(httppost); 
+0

で同様の問題を検索してください。私はあなたが既にこの問題について議論しているかなりの類似のスレッドを手に入れることができると確信しています。 –

+0

完全なスタックトレースを投稿できますか?あなたのコードで問題のある行を正確に特定するのは難しいです。間違いなくメモリリーク。 –

+0

@Sagar Hatekarここで、デバッグは編集の上を指しています。 – yoshi24

答えて

3

大文字にする必要があるテキストファイルを、StringBuilderのメモリにロードしている可能性があります。エラーを回避するには、このファイルをStringBuilderの代わりにローカルファイルに書き込む必要があります。

+0

大丈夫だと、多分私はテキストのドキュメントから文字列を取得するコードを持つことができます。 SQLiteデータベースの内部に格納され、そこから取得します。唯一の問題は、私は頻繁にURLを変更することです。そして、古いURLのサイズが大きくなるように、データベースにURLを保存しておきたい。 – yoshi24

+0

すべてのインポート時にデータベースをクリーンアップできます。 –

+1

参照されるファイルの内容は単に 'https://sites.google.com/site/theitrangers/images/ncaa12.jpg'です。確かにOOMのために十分な大きさではなく、私の腕時計でさえも。 –

関連する問題