Glide Crashes App при загрузке неверного URL - PullRequest
0 голосов
/ 02 мая 2019

Когда я разрабатывал приложение, случайно передал неверный URL Glide.Это заставило мое приложение зависать.

Совместное использование моего кода:

val file = requestManager.downloadOnly().load(imageUrl).listener(requestListener).submit().get()

Совместное использование журнала аварий:

 java.lang.Error: java.util.concurrent.ExecutionException: com.bumptech.glide.load.engine.GlideException: Failed to load resource
There was 1 cause:
java.io.FileNotFoundException(https://imageSamples/sampleimage.jgp)
 call GlideException#logRootCauses(String) for more detail
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1139)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
    at java.lang.Thread.run(Thread.java:760)
 Caused by: java.util.concurrent.ExecutionException: com.bumptech.glide.load.engine.GlideException: Failed to load resource
There was 1 cause:
java.io.FileNotFoundException(https://imageSamples/sampleimage.jgp)
 call GlideException#logRootCauses(String) for more detail
    at com.bumptech.glide.request.RequestFutureTarget.doGet(RequestFutureTarget.java:205)
    at com.bumptech.glide.request.RequestFutureTarget.get(RequestFutureTarget.java:108)
    at com.sample.app.Manager.cacheImage(Manager.kt:69)
    at com.sample.app.Manager.access$cacheImage(Manager.kt:19)
    at com.sample.app.Manager$updateImageCache$1.run(Manager.kt:46)
    at io.fabric.sdk.android.services.concurrency.AsyncTask$SerialExecutor$1.run(AsyncTask.java:254)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
        ... 2 more
 Caused by: com.bumptech.glide.load.engine.GlideException: Failed to load resource
There was 1 cause:
java.io.FileNotFoundException(https://imageSamples/sampleimage.jgp)
 call GlideException#logRootCauses(String) for more detail

То, что я сделал, чтобы предотвратить падение приложения, - это try-catch.Но я не очень рад использовать try catch в коде.

    try {
        val file = requestManager.downloadOnly().load(imageUrl).listener(requestListener).submit().get()
    } catch (e: Exception) {
        e.printStackTrace()
    }

Есть ли лучший способ справиться с этим?Как некоторые методы API от Glide?

1 Ответ

1 голос
/ 02 мая 2019

Это может быть вызвано тем, что URL не найден.

java.io.FileNotFoundException(https://firebaestorage.googleapis.com/v0/b/fir-config-f8c4e.appspot.com/o/resized.png?alt=media&token=5ac525a2-b195-467b-b52a-7c1619aa158d)

Над URL firebaestorage.googleapis.com может быть неправильным из-за отсутствия s в fireba(s)estorage

...