2011-02-02 15 views
0

OpenGL ES 2.0を使用するAndroid 2.2アプリケーションを開発しています。すべてのOpenGL ESはC++で実装されています。OpenGL ES 2.0でメモリが不足する

私はテクスチャをロードしようとしたとき、私はこのエラーを得た:

02-02 13:03:03.210: ERROR/dalvikvm-heap(4117): 1728000-byte external allocation too large for this process. 
02-02 13:03:03.210: ERROR/dalvikvm(4117): Out of memory: Heap Size=6471KB, Allocated=3881KB, Bitmap Size=17023KB 
02-02 13:03:03.210: ERROR/GraphicsJNI(4117): VM won't let us allocate 1728000 bytes 

私はこの「メモリ不足」問題を解決するためにチェックする必要があります何を?

ありがとうございました。

+0

ここで関連コード、特に割り当てようとしている割り当てを転記できますか?また実際にテクスチャをロードするコードもあります。 テクスチャの読み込みは非常に一般的な操作です。コードを投稿したくない場合は、ネット上のサンプルコードを検索することをおすすめします。 – csanta

答えて

0

まず、16MBのビットマップファイルをメモリにロードしようとしているようです。あなたは、その画像のサイズを縮小することに目を向けるべきです。 Androidでは、プロセスごとに一定量のメモリしか割り当てられません。あなたはそれを乗り越えるように見えます。

多分、Androidのメモリ最適化について調べてみましょうか?

+0

いいえ、ビットマップは192KBです。これはbmpファイルです。たぶん私はJPGまたはPNGに変更しようとすることができます。 – VansFannel

+0

エラーを見ると、ヒープに16MBを割り当てようとしているということです。それは "ビットマップサイズ= 17023KB"と言う。だから、それは画像処理と関係があるように見えます。あなたはBitmapFactoryを使用していますか? – SpencerElliott

+0

遅れて申し訳ありません。私はBitmapFactoryを使用しています。何か問題はありますか? – VansFannel