そのため、Androidでクラッシュするコードがいくつかありますが、その理由はわかりません。
while(true)
{
byte[] colorData = new byte[480*800];
colorData = null;
System.out.println("what");
}
「what」を3回出力した後、「Fatal Signal 11SIGSEGV」でクラッシュします(http://i.imgur.com/FYAsi2C.pngを参照)。間違いなくガベージコレクションを実行しているので、メモリが不足しているようには見えませんが、配列のサイズを小さくすると、クラッシュするのに時間がかかります。
colorData行を削除すると、コードは機能し、クラッシュしません。私はとても混乱しています。他のコードの一部である可能性がありますが、配列宣言を追加/削除すると、プログラムがクラッシュする/クラッシュしない理由がわかりません。
何か案は?
編集:
そのため、バイト配列のサイズを大きくしてプログラムを強制的にメモリ不足にすると、メモリ不足の例外が発生します。このセグメンテーション違反の原因は何ですか?