java.lang.OutOfMemoryError:位图大小超出VM预算-Android

丹尼尔·本尼迪克特(Daniel Benedict)

我开发了一个在Android上使用大量图像的应用程序。

该应用程序运行一次,填满屏幕(上的信息LayoutsListviewsTextviewsImageViews,等)和用户读取的信息。

没有动画,没有特效或任何可以填满内存的东西。有时可绘制对象可以更改。有些是android资源,有些是文件保存在SDCARD的文件夹中。

然后,用户退出(该onDestroy方法已执行,并且应用程序由VM保留在内存中),然后在某个时候用户再次进入。

每次用户进入该应用程序时,我都会看到内存越来越大,直到用户获得java.lang.OutOfMemoryError

那么处理许多图像的最佳/正确方法是什么?

我应该将它们放在静态方法中,这样就不会一直加载它们吗?我是否必须以特殊方式清洁版面或版面中使用的图像?

特雷弗·约翰斯

听起来您有内存泄漏。问题不是处理很多图像,而是当您的活动被销毁时,图像没有被释放。

如果不查看代码,很难说出这是为什么。但是,本文有一些技巧可能会有所帮助:

http://android-developers.blogspot.de/2009/01/avoiding-memory-leaks.html

特别是,使用静态变量可能会使情况更糟,而不是更好。您可能需要添加代码,以在应用程序重绘时删除回调-但同样,这里没有足够的信息可以肯定地说。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

java.lang.OutOfMemoryError:Android 1.4超出了GC开销限制

Android java.lang.VerifyError?

java.lang.OutOfMemoryError:超出了GC开销限制

错误java.lang.OutOfMemoryError:超出了GC开销限制

java.lang.OutOfMemoryError:位图大小超出VM预算

位图大小超过Vm预算错误android

Android java.lang.OutOfMemoryError仅在Samsung设备上

如何解决Android中的java.lang.OutOfMemoryError问题

Jmeter java.lang.OutOfMemoryError:超出了GC开销限制

Android Robolectric Gradle-java.lang.OutOfMemoryError:PermGen空间

Tomcat java.lang.OutOfMemoryError:超出了GC开销限制

Android java.lang.OutOfMemoryError?

带有大量图像的android java.lang.OutOfMemoryError recyclerview

Android:java.lang.NoClassDefFoundError

如何在Android中修复java.lang.OutOfMemoryError

Pyspark:java.lang.OutOfMemoryError:超出了GC开销限制

java.lang.OutOfMemoryError(超出了GC开销限制)

android应用程序中的java.lang.OutOfMemoryError

如何清除Android PDFView中的java.lang.OutOfMemoryError?

java.lang.OutOfMemoryError:位图大小超过第二次运行应用程序时VM预算崩溃

在Android中将图片网址转换为位图时,如何解决java.lang.OutOfMemoryError异常?

在某些设备中,位图大小超出了VM预算

java.lang.InstantiationException android

ObjectOutputStream-对象超过1GB导致java.lang.OutOfMemoryError:请求的数组大小超出VM限制

在可怕的异常java.lang.OutofMemoryError:位图大小超出VM预算时,术语“ VM”是什么意思?

java.lang.OutOfMemoryError:Android

ListView android滚动期间出现java.lang.OutOfMemoryError

Xamarin android 部署上的 Java,Lang.OutOfMemoryError

Android Studio:E/UncaughtException:java.lang.OutOfMemoryError