1

我在我的 android 应用程序中使用相机,并以纵向模式握住手机(cameraView 处于横向模式,这是第一件奇怪的事情),当我将手机置于横向模式时,出现错误。

VM won't let us allocate ... bytes

显示的错误行是

setContentView(R.layout.gameactivity);

这篇文章很有趣原因是:java.lang.OutOfMemoryError:位图大小超出 VM 预算 但是我在我的活动中没有使用位图,所以我不知道为什么我会收到有关位图的错误

02-01 10:07:30.301: E/AndroidRuntime(5715): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
02-01 10:07:30.301: E/AndroidRuntime(5715):     at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
02-01 10:07:30.301: E/AndroidRuntime(5715):     at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:460)
02-01 10:07:30.301: E/AndroidRuntime(5715):     at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:336)
02-01 10:07:30.301: E/AndroidRuntime(5715):     at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697)
02-01 10:07:30.301: E/AndroidRuntime(5715):     at android.content.res.Resources.loadDrawable(Resources.java:1709)
02-01 10:07:30.301: E/AndroidRuntime(5715):     at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
02-01 10:07:30.301: E/AndroidRuntime(5715):     at android.widget.ImageView.<init>(ImageView.java:118)
02-01 10:07:30.301: E/AndroidRuntime(5715):     at android.widget.ImageView.<init>(ImageView.java:108)
02-01 10:07:30.301: E/AndroidRuntime(5715):     ... 27 more
4

1 回答 1

1

你有内存泄漏。
当设备更改布局时,将再次创建 Activity。很可能你得到了一些不会被释放的巨大静态变量等。
也许在 Manifest 中的 Activity 中添加“onConfigChanged:orientation”标签可以帮助您防止内存泄漏,但这并不是适用于所有情况的好解决方案。
还有几个站点向您展示如何找到内存泄漏,就像这样

于 2013-02-01T10:25:11.657 回答