Когда я перешел на новую версию Glide
(4.7.1), мне пришлось внести некоторые изменения в код. Где я имел обыкновение иметь:
Glide.with(context)
.load(url)
.bitmapTransform(ContrastFilterTransformation(activity, BaseActivity.CONTRAST_IMAGES))
.centerCrop()
.diskCacheStrategy(DiskCacheStrategy.RESULT)
.into(imageView)
Теперь у меня есть:
Glide.with(context)
.load(url)
.apply(
RequestOptions()
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
.centerCrop()
.transform(
ContrastFilterTransformation(
context,
BaseActivity.CONTRAST_IMAGES
)
)
)
.into(imageView)
Проблема в том, что теперь я получаю сообщение об ошибке ниже, и изображение не загружается.
Загруженное изображение представляет собой файл JPG, загруженный из Интернета.
Если я избавлюсь от трансформации, изображение будет загружено правильно.
Если я избавлюсь от всего, кроме преобразования в RequestOptions
, я все равно получу ошибку.
Такая же ошибка происходит, если я установил .diskCacheStrategy(DiskCacheStrategy.None)
Раньше он работал с Glide
версии 2 и старым кодом.
I / Glide: первопричина (1 из 1)
java.lang.AbstractMethodError: абстрактный метод "void com.bumptech.glide.load.Key.updateDiskCacheKey (java.security.MessageDigest)"
at com.bumptech.glide.load.resource.gif.GifDrawableTransformation.updateDiskCacheKey (GifDrawableTransformation.java:67)
на com.bumptech.glide.load.engine.ResourceCacheKey.updateDiskCacheKey (ResourceCacheKey.java:83)
на com.bumptech.glide.load.engine.cache.SafeKeyGenerator.calculateHexStringDigest (SafeKeyGenerator.java:52)
на com.bumptech.glide.load.engine.cache.SafeKeyGenerator.getSafeKey (SafeKeyGenerator.java:41)
на com.bumptech.glide.load.engine.cache.DiskLruCacheWrapper.get (DiskLruCacheWrapper.java:88)
на com.bumptech.glide.load.engine.ResourceCacheGenerator.startNext (ResourceCacheGenerator.java:86)
на com.bumptech.glide.load.engine.DecodeJob.runGenerators (DecodeJob.java:302)
на com.bumptech.glide.load.engine.DecodeJob.runWrapped (DecodeJob.java:269)
на com.bumptech.glide.load.engine.DecodeJob.run (DecodeJob.java:233)
в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:636)
на java.lang.Thread.run (Thread.java:764)
at com.bumptech.glide.load.engine.executor.GlideExecutor $ DefaultThreadFactory $ 1.run (GlideExecutor.java:446)