【エラー対策】GC_FOR_ALLOC freeと表示される

ゲームを作成中に、画像を描写していたら、

急に描写が止まった。

logcatでエラーを確認すると

「GC_FOR_ALLOC freed ~」と表示された。

ググってみると、

ヒープサイズがどうたら...ガベージコレクションがどうたら...

意味がわからないし、そんなところいじってないと思っていた。

とは、言いつつもその辺りが原因なのかなと、

ヒープのサイズをいじったり、画像を圧縮してみたりしたけれども

解決には至らなかった。

そんな中で、メモリに関して何かおかしいのではと思い始めた

そこで、メモリがどのようになっているのかチェックをしてみた。

まずは,DDMSを開く
ss4_2013121816364303b.png

以下の順で操作を行う
1:割り当てトラッカーを選択
2:エミュレータ起動
3:チェックしたいアクティビティ選択
4:start trackingを押す(画像ではstop trackingになっている)
5:get allocationを押す

ss5_20131218163644e1b.png

すると、アクティビティのメモリの状態がわかる。

自分はここで、配列の要素がオーバーフローしていることが判明した。

(IllegalAccessExceptionと表示されたため)

その部分を直すと、「GC_FOR_ALLOC freed」は表示されなくなった。

結局はただの配列の要素の指定をミスしていただけだったということだった。

ただ、このように直接、原因に繋がるエラーが表示されるわけではないということが分かった。

Comment

Comment Form
公開設定

Trackback


→ この記事にトラックバックする(FC2ブログユーザー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。