首页 > 解决方案 > 在回收站视图上使用 cardview 会导致系统崩溃

问题描述

为什么使用cardview使用大图像会使android系统崩溃?我将 1280 X 600 图像用于 cardview,但在安装后启动应用程序会崩溃,系统out of memory error会从 logcat 中显示一个。

启动应用程序时我至少有 400MB 的 RAM(使用简单的系统监视器查看),但应用程序崩溃了。卡片视图是否设计为仅适用于小图像?如果我们必须为更大 dpi 的设备使用更大的图像怎么办?cardview 与回收器视图一起使用,并且测试它的操作系统是 KitKat。

标签: androidandroid-recyclerviewandroid-cardview

解决方案


您可能有 400 MB RAM,但所有 RAM 都不会直接提供给您的应用程序,因此应用程序将崩溃……如果您想为不同的设备使用不同的 dpi 图像,那么您可以将其添加到 drawable、drawable-mdpi、drawable- xhdpi,drawable-xxhdpi 等文件夹,以便系统可以自动选择它们....如果您从 url 加载...那么您可以使用 Picasso、Glide 等第三方库来有效地加载图像

此外,在您的问题中,您说您正在回收站视图中添加卡片视图...这意味着将加载多个 1280x600 图像,这将占用大量内存并使您的应用程序崩溃。

对于您的问题“卡片视图是否设计为仅适用于小图像?” 不,卡片视图与您的内存不足无关......它为您提供的图像大小和内存......卡片视图可以处理任何大小的图像。

添加 android:largeHeap="true" 到你的清单可以在一定程度上帮助你


推荐阅读