Как правильно поймать исключения из Glide? - PullRequest
1 голос
/ 20 марта 2019

Я использую Glide 4.x и получаю FileNotFoundException в качестве URL-адреса, возвращающего 404. Я попытался перехватить исключение, используя RequestListener. Но это не кэширование этого исключения.

GlideApp.with(getApplicationContext()).load(URL).placeholder(R.mipmap.ic_launcher).listener(new RequestListener<Drawable>() {
                            @Override
                            public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
                                System.out.println("MainActivity.onLoadFailed"+e.getMessage());
                                return false;
                            }

                            @Override
                            public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
                                System.out.println("MainActivity.onResourceReady");
                                return false;
                            }
                        }).error(R.mipmap.ic_launcher).transform(new CircleCrop()).into(profileImage);

Войти как следует:

2019-03-20 17: 48: 07.134 32233-32233 / com.zyta.zflikz W / Glide: Load не удалось https://lh4.googleusercontent.com/-UxjwFuQRjXA/AAAAAAAAAAI/AAAAAAAAAAA/ACLGyWByUX_zz0_9075kpV4xIdPmN_dtNQ/s96-c/photo.jpg с размером [183x183] Класс com.bumptech.glide.load.engine.GlideException: не удалось загрузить ресурс Было 2 причины: java.io.FileNotFoundException (https://lh4.googleusercontent.com/-UxjwFuQRjXA/AAAAAAAAAAI/AAAAAAAAAAA/ACLGyWByUX_zz0_9075kpV4xIdPmN_dtNQ/s96-c/photo.jpg) java.io.FileNotFoundException (https://lh4.googleusercontent.com/-UxjwFuQRjXA/AAAAAAAAAAI/AAAAAAAAAAA/ACLGyWByUX_zz0_9075kpV4xIdPmN_dtNQ/s96-c/photo.jpg) вызовите GlideException # logRootCauses (String) для более подробной информации Причина (1 из 3): класс com.bumptech.glide.load.engine.GlideException: не удалось получить данные, класс java.io.InputStream, REMOTE Была 1 причина: java.io.FileNotFoundException (https://lh4.googleusercontent.com/-UxjwFuQRjXA/AAAAAAAAAAI/AAAAAAAAAAA/ACLGyWByUX_zz0_9075kpV4xIdPmN_dtNQ/s96-c/photo.jpg) вызовите GlideException # logRootCauses (String) для более подробной информации Причина (1 из 1): класс java.io.FileNotFoundException: https://lh4.googleusercontent.com/-UxjwFuQRjXA/AAAAAAAAAAI/AAAAAAAAAAA/ACLGyWByUX_zz0_9075kpV4xIdPmN_dtNQ/s96-c/photo.jpg Причина (2 из 3): класс com.bumptech.glide.load.engine.GlideException: не удалось получить данные, класс java.io.InputStream, REMOTE Была 1 причина: java.io.FileNotFoundException (https://lh4.googleusercontent.com/-UxjwFuQRjXA/AAAAAAAAAAI/AAAAAAAAAAA/ACLGyWByUX_zz0_9075kpV4xIdPmN_dtNQ/s96-c/photo.jpg) вызовите GlideException # logRootCauses (String) для более подробной информации Причина (1 из 1): класс java.io.FileNotFoundException: https://lh4.googleusercontent.com/-UxjwFuQRjXA/AAAAAAAAAAI/AAAAAAAAAAA/ACLGyWByUX_zz0_9075kpV4xIdPmN_dtNQ/s96-c/photo.jpg Причина (3 из 3): класс com.bumptech.glide.load.engine.GlideException: Failed LoadPath {StringUri-> Object-> Drawable}, LOCAL Причина (1 из 2): класс com.bumptech.glide.load.engine.GlideException: Failed DECODEPATH {StringUri-> Drawable-> Drawable} Причина (2 из 2): класс com.bumptech.glide.load.engine.GlideException: Failed DecodePath {StringUri-> Bitmap-> Drawable} 2019-03-20 17: 48: 07.135 32233-32233 / com.zyta.zflikz I / Glide: первопричина (1 из 2) java.io.FileNotFoundException: https://lh4.googleusercontent.com/-UxjwFuQRjXA/AAAAAAAAAAI/AAAAAAAAAAA/ACLGyWByUX_zz0_9075kpV4xIdPmN_dtNQ/s96-c/photo.jpg на com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream (HttpURLConnectionImpl.java:251) на com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream (DelegatingHttpsURLConnection.java:210) в com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream (HttpsURLConnectionImpl.java:26) на com.bumptech.glide.load.data.HttpUrlFetcher.loadDataWithRedirects (HttpUrlFetcher.java:106) на com.bumptech.glide.load.data.HttpUrlFetcher.loadData (HttpUrlFetcher.java:59) на com.bumptech.glide.load.engine.SourceGenerator.startNext (SourceGenerator.java:62) на com.bumptech.glide.load.engine.DecodeJob.runGenerators (DecodeJob.java:302) на com.bumptech.glide.load.engine.DecodeJob.runWrapped (DecodeJob.java:272) на com.bumptech.glide.load.engine.DecodeJob.run (DecodeJob.java:233) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:641) на java.lang.Thread.run (Thread.java:764) в com.bumptech.glide.load.engine.executor.GlideExecutor $ DefaultThreadFactory $ 1.run (GlideExecutor.java:446) 2019-03-20 17: 48: 07.137 32233-32233 / com.zyta.zflikz I / Glide: Root причина (2 из 2) java.io.FileNotFoundException: https://lh4.googleusercontent.com/-UxjwFuQRjXA/AAAAAAAAAAI/AAAAAAAAAAA/ACLGyWByUX_zz0_9075kpV4xIdPmN_dtNQ/s96-c/photo.jpg на com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream (HttpURLConnectionImpl.java:251) на com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream (DelegatingHttpsURLConnection.java:210) в com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream (HttpsURLConnectionImpl.java:26) на com.bumptech.glide.load.data.HttpUrlFetcher.loadDataWithRedirects (HttpUrlFetcher.java:106) на com.bumptech.glide.load.data.HttpUrlFetcher.loadData (HttpUrlFetcher.java:59) на com.bumptech.glide.load.engine.SourceGenerator.startNext (SourceGenerator.java:62) на com.bumptech.glide.load.engine.DecodeJob.runGenerators (DecodeJob.java:302)на com.bumptech.glide.load.engine.DecodeJob.onDataFetcherFailed (DecodeJob.java:397) на com.bumptech.glide.load.engine.SourceGenerator.onLoadFailed (SourceGenerator.java:119) на com.bumptech.glide.load.data.HttpUrlFetcher.loadData (HttpUrlFetcher.java:65) на com.bumptech.glide.load.engine.SourceGenerator.startNext (SourceGenerator.java:62) на com.bumptech.glide.load.engine.DecodeJob.runGenerators (DecodeJob.java:302) на com.bumptech.glide.load.engine.DecodeJob.runWrapped (DecodeJob.java:272) на com.bumptech.glide.load.engine.DecodeJob.run (DecodeJob.java:233) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:641) на java.lang.Thread.run (Thread.java:764) в com.bumptech.glide.load.engine.executor.GlideExecutor $ DefaultThreadFactory $ 1.run (GlideExecutor.java:446) 2019-03-20 17: 48: 07.138 32233-32233 / com.zyta.zflikz I / System.out: MainActivity.onLoadFailedFailed для загрузки ресурса

Пожалуйста, дайте мне знать, есть ли у кого-нибудь исправление или альтернативное решение для этого.

...