【问题标题】:Android: Screen orientation error + VM won't let us allocate x bytesAndroid:屏幕方向错误 + VM 不允许我们分配 x 字节
【发布时间】:2013-02-01 10:09:15
【问题描述】:

我在我的 android 应用程序中使用相机,并且我将手机置于纵向模式(cameraView 处于横向模式,这是第一件奇怪的事情),当我将手机转为横向模式时,我得到了错误。

VM won't let us allocate ... bytes

显示的错误行是

setContentView(R.layout.gameactivity);

这篇文章很有趣Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget 然而我在我的活动中没有使用位图,所以我不知道为什么我对位图会出错

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

【问题讨论】:

    标签: android bitmap camera orientation


    【解决方案1】:

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

    【讨论】:

    • 感谢 onConfigChanged 的​​帮助,但现在,当我转动屏幕时,它可以找到,当我拍照时,程序又崩溃了……
    • 正如我所说,它不会使泄漏消失,因此请检查您的代码是否存在内存泄漏。因为你拍照我猜你有太大的位图或者你没有回收它们。在 Stackoverflow 上,您可以找到许多关于 Android 中位图和 OOM 的问题。
    • 我使用 eclipse 内存分析器stackoverflow.com/questions/14646029/… 有那些可能的泄漏,如果你有时间看看它我不知道从这些结果中我们是否可以说我是否有泄漏,我不知道大多数可能的泄漏类..
    • + 即使我评论了我的位图对象并且不再有,我仍然有位图错误...
    • 位图也可以是XML中添加的Background-Images
    猜你喜欢
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 2015-01-08
    • 2012-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多