You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Glide clear()方法无法解析求助:Android RecyclerView修复OOM时报错

解决Glide 4.x中cannot find symbol method clear(ImageView)的问题

嘿,这个问题我之前刚好碰到过!你遇到的报错是因为Glide 4.x的API和旧版本(比如3.x)做了不少调整,直接调用Glide.clear(ImageView)的方式已经被移除啦。

原因分析

在Glide 4.x中,所有和请求相关的操作(包括清除请求)都需要通过RequestManager来完成,不再支持直接调用Glide类的静态clear方法。

正确的代码实现

你只需要修改onViewRecycled方法的代码,通过Glide.with()获取对应的RequestManager,再调用它的clear()方法即可:

@Override
public void onViewRecycled(final ViewHolder viewHolder) {
    ImageView imageView = viewHolder.getImageView();
    // 获取当前ImageView上下文对应的RequestManager,然后清除请求
    Glide.with(imageView.getContext()).clear(imageView);
}

如果你项目中使用了Glide注解处理器生成的GlideApp(这也是Glide 4推荐的用法),也可以写成:

@Override
public void onViewRecycled(final ViewHolder viewHolder) {
    ImageView imageView = viewHolder.getImageView();
    GlideApp.with(imageView.getContext()).clear(imageView);
}

补充说明

这样修改后,就能在RecyclerView回收Item视图时,正确取消ImageView的图片加载请求并释放相关内存资源,刚好能帮你缓解OutOfMemoryException的问题哦。

内容的提问来源于stack exchange,提问作者EllieBubbles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:29:25