大きな画像を描画するときにエミュレータがクラッシュする問題があります。クラッシュは、drawableでsetBoundsを使用するとNullPointerExceptionが発生します(何らかの理由でdrawableがnullになる)。エミュレータでNullPointerExceptionが発生する大きな画像
問題はエミュレータでのみ発生し、私のデバイス(HTC Desire)にロードする場合は発生しません。
私の画像は1080x1658px jpgです。はるかに小さい画像を指定すると、問題はなくなります。
私のコードは次のようになります。アプリケーションのヒープが大きすぎる場合
public class Map {
private Drawable mapImage;
public Map(Context context) {
mapImage = context.getResources().getDrawable(R.drawable.north);
}
public void render(Canvas canvas) {
mapImage.setBounds(0, 0, 1080, 1658);
mapImage.draw(canvas);
}
}
こんにちは、私は日食でDDMSパースペクティブのヒープサイズを見てみましたが、VMがクラッシュしたので、私は(ヒープサイズを見ることができる前に、プロセスがシャットダウンされています私が大きなイメージで活動を開くとき)。私はしかし、コードベースを共有する別のアプリを持っているが、小さな画像(900x952)を使用して、このアプリはクラッシュしないと私はヒープがそのアプリで6,070メガバイトを超えることはないと言うことができるので、エミュレータのデフォルトの24 MB? – mat