Android Glide - Невозможно утилизировать ресурс, который уже был переработан - PullRequest
0 голосов
/ 18 января 2020

У меня есть список объектов, которые пользователь может создавать и удалять во время выполнения, и каждому объекту присваивается значок. Когда в какой-то момент я выполняю несколько операций добавления / удаления этих объектов, я получаю следующее исключение.

java.lang.IllegalStateException: Cannot recycle a resource that has already been recycled
at com.bumptech.glide.load.engine.EngineResource.recycle(EngineResource.java:71)
at com.bumptech.glide.load.engine.ResourceRecycler$ResourceRecyclerCallback.handleMessage(ResourceRecycler.java:37)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:135)

Я не выполняю операций по утилизации самостоятельно и не обращаюсь к пулу растровых изображений Glide. Моя пользовательская модель Glide - это следующий класс

public class MyGlideInput {

    private String packageName, apkFilePath, iconResName;

    public MyGlideInput() {
    }

    @Override
    public boolean equals(@Nullable Object obj) {
        if(obj == null){
            return false;
        }
        if(!(obj instanceof MyGlideInput)){
            return false;
        }
        MyGlideInput input = (MyGlideInput) obj;
        return stringsEqual(packageName, input.packageName ) && stringsEqual(apkFilePath, input.apkFilePath)
                && stringsEqual(iconResName, input.iconResName);
    }

    @Override
    public int hashCode() {
        return (apkFilePath+packageName+iconResName+"").hashCode();
    }

    public boolean stringsEqual(String a, String b){
        return a != null && a.equals(b);
    }

}

для класса адаптера RecyclerView в bindViewHolder. Я делаю:

GlideInput glideInput = new GlideInput().setDrawableResName(iconResName);
GlideApp.with(img).load(glideInput).dontAnimate().error(R.drawable.warning).into(img);

Есть предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...