В основном я пытаюсь загрузить изображение с круговым преобразованием и как CompoundDrawable
, используя Glide .Как правило, для случаев, не связанных с CompoundDrawable, мы могли бы корректно обрабатывать ошибки загрузки, правильно настраивая RequestOptions, например, так:
RequestOptions options = new RequestOptions().error(R.drawable.error_image)
Однако это не работает при загрузке в TextView какCompoundDrawable
.Ниже приведены мои инструменты и код:
Android Studio Gradle plugin = 3.1.2
Gradle version = 4.4
Glide version = 4.7.1
Support Library version = 27.1.1
RequestOptions options = new RequestOptions()
.error(R.drawable.error_image)
.fitCenter()
.circleCrop();
Glide.with(context)
.setDefaultRequestOptions(options)
.load(sandwich.getImage())
.into(new SimpleTarget<Drawable>(100,100) {
@Override
public void onResourceReady(@NonNull Drawable resource,
@Nullable Transition<? super Drawable> transition) {
sandwichQuickInfo.setCompoundDrawablesWithIntrinsicBounds(
resource,
null,
null,
null
);
}
});
Ниже приводится ошибка, которую я получаю для URL, который возвращает 404 в качестве вспомогательных данных.
Glide W Load failed for some url... [197x197]
W class com.bumptech.glide.load.engine.GlideException: Failed to load resource
W There were 2 causes:
W java.io.FileNotFoundException(some url...)
W java.io.FileNotFoundException(No content provider: some url...)
W call GlideException#logRootCauses(String) for more detail
W Cause (1 of 2):
class com.bumptech.glide.load.engine.GlideException: Fetching data failed, class java.io.InputStream, REMOTE
W There was 1 cause:java.io.FileNotFoundException(some url...)
W call GlideException#logRootCauses(String) for more detail
W Cause (1 of 1): class com.bumptech.glide.load.engine.GlideException: Fetch failed
W There was 1 cause:java.io.FileNotFoundException(some url...)
W call GlideException#logRootCauses(String) for more detail
W Cause (1 of 1): class java.io.FileNotFoundException: some url...
W Cause (2 of 2): class com.bumptech.glide.load.engine.GlideException: Fetching data failed, class android.content.res.AssetFileDescriptor, LOCAL
W There was 1 cause:
W java.io.FileNotFoundException(No content provider: some url...)
W call GlideException#logRootCauses(String) for more detail
W Cause (1 of 1): class java.io.FileNotFoundException: No content provider: some url...
I Root cause (1 of 2)
I java.io.FileNotFoundException: some url...
I at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:251)
I at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210)
I at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(Unknown Source:0)
I at com.bumptech.glide.load.data.HttpUrlFetcher.loadDataWithRedirects(HttpUrlFetcher.java:106)
I at com.bumptech.glide.load.data.HttpUrlFetcher.loadData(HttpUrlFetcher.java:59)
I at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.loadData(MultiModelLoader.java:99)
I at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.startNextOrFail(MultiModelLoader.java:150)
I at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.onLoadFailed(MultiModelLoader.java:144)
I at com.bumptech.glide.load.data.HttpUrlFetcher.loadData(HttpUrlFetcher.java:65)
I at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.loadData(MultiModelLoader.java:99)
I at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:62)
I at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:302)
I at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:272)
I at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:233)
I at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
I at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
I at java.lang.Thread.run(Thread.java:764)
I at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:446)
I Root cause (2 of 2)
I java.io.FileNotFoundException: No content provider: some url...
I at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1396)
I at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1247)
I at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1170)
I at com.bumptech.glide.load.data.AssetFileDescriptorLocalUriFetcher.loadResource(AssetFileDescriptorLocalUriFetcher.java:22)
I at com.bumptech.glide.load.data.AssetFileDescriptorLocalUriFetcher.loadResource(AssetFileDescriptorLocalUriFetcher.java:13)
I at com.bumptech.glide.load.data.LocalUriFetcher.loadData(LocalUriFetcher.java:44)
I at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:62)
I at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:302)
I at com.bumptech.glide.load.engine.DecodeJob.onDataFetcherFailed(DecodeJob.java:397)
I at com.bumptech.glide.load.engine.SourceGenerator.onLoadFailed(SourceGenerator.java:119)
I at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.startNextOrFail(MultiModelLoader.java:153)
I at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.onLoadFailed(MultiModelLoader.java:144)
I at com.bumptech.glide.load.data.HttpUrlFetcher.loadData(HttpUrlFetcher.java:65)
I at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.loadData(MultiModelLoader.java:99)
I at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.startNextOrFail(MultiModelLoader.java:150)
I at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.onLoadFailed(MultiModelLoader.java:144)
I at com.bumptech.glide.load.data.HttpUrlFetcher.loadData(HttpUrlFetcher.java:65)
I at com.bumptech.glide.load.model.MultiModelLoader$MultiFetcher.loadData(MultiModelLoader.java:99)
I at com.bumptech.glide.load.engine.SourceGenerator.startNext(SourceGenerator.java:62)
I at com.bumptech.glide.load.engine.DecodeJob.runGenerators(DecodeJob.java:302)
I at com.bumptech.glide.load.engine.DecodeJob.runWrapped(DecodeJob.java:272)
I at com.bumptech.glide.load.engine.DecodeJob.run(DecodeJob.java:233)
I at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
I at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
I at java.lang.Thread.run(Thread.java:764)
I at com.bumptech.glide.load.engine.executor.GlideExecutor$DefaultThreadFactory$1.run(GlideExecutor.java:446)