2012年8月28日火曜日

Out of Memory

Bitmapを使っているときにOut of Memoryエラーが発生
(何回か実行しているうちに、Heapが足りなくなってエラー)

ネットであちこち探しまわったが、結局解決策はない。

  bitmap.recyle();
  bitmap = null;
をやってもだめ。

GCは当てにならないらしい。
System.gc();をやってもだめ。

結局、bitmapのサイズをできるだけ小さくするしかない。
Cameraを使っているなら、PictureSizeを小さくする。
   params.setPictureSize(800,600);
画像ファイルを使うなら、縮小する

   BitmapFactory.Options opts = new BitmapFactory.Options();
   opts.inSampleSize = 2; // サイズ縮小

   Bitmap bitmap = BitmapFactory.decodeFile(file,opts);
ManifestでHeapサイズを大きくする

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true"
(ただしこれはエラーの発生を遅らせるだけだが)

これ以外、現在打つ手なし。

0 件のコメント:

コメントを投稿