web-dev-qa-db-ja.com

クラスcom.bumptech.glide.load.engine.GlideException:リソースの読み込みに失敗しました

Glideを使用してimageViewに画像をロードしようとしています。しかし、画像が読み込まれていません-エラーが発生します。次のコードを使用しています

GlideApp.with(context)
    .load(itemData.getThumbnailUri())
    .placeholder(R.mipmap.koya_logo_white)
    .error(R.mipmap.ic_image_loading_error)
    .into(itemBinding.cover);

ログ

lide: Load failed for https://s3.amazonaws.com/koya-dev-videos/kindness/8da807aa-1e1e-413d-bf9b-5bb084646593/medialibrary/9456621508/videos/1eb78337-d569-41bd-95ad-153d9098de03.png with size [1080x1080]
class com.bumptech.glide.load.engine.GlideException: Failed to load resource
Cause (1 of 1): class com.bumptech.glide.load.engine.GlideException: Failed LoadPath{StringUri->Object->Drawable}, LOCAL, DataCacheKey{sourceKey=https://s3.amazonaws.com/koya-dev-videos/kindness/8da807aa-1e1e-413d-bf9b-5bb084646593/medialibrary/9456621508/videos/1eb78337-d569-41bd-95ad-153d9098de03.png, signature=EmptySignature}
Cause (1 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{StringUri->Drawable->Drawable}
Cause (2 of 2): class com.bumptech.glide.load.engine.GlideException: Failed DecodePath{StringUri->Bitmap->Drawable}
16
narender sharma

この問題が発生するもう1つの理由は、電話またはエミュレータがインターネットに接続していないことです。

2
Ievgen

この問題にも直面しています。グライド側のバグです。最新バージョンのグライドを使用してください。

repositories {
 mavenCentral()
 google()
}

dependencies {
implementation 'com.github.bumptech.glide:glide:4.9.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
}

ItemData.getThumbnailUri()に空のスペースが含まれていないことを確認してください

2
sasikumar

これを試してください

String url = "https://s3.amazonaws.com/koya-dev-videos/kindness/8da807aa-1e1e-413d-bf9b-5bb084646593/medialibrary/9456621508/videos/1eb78337-d569-41bd-95ad-153d9098de03.png";

GlideApp.with(context).load(url)
        .override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
        .error(R.drawable.glide_app_img_loader)
        .listener(new RequestListener<Drawable>() {
             @Override
             public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
                 return false;
             }

             @Override
             public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
                 return false;
             }
        }).into(imageView);
1
Vishrut Mavani

GlideHTTPのURLを読み込めませんが、HTTPSHTTPよりも使用すると問題なく動作することがわかりました。

同様に、画像が1800x1800以上の場合など、大きな画像の読み込みに失敗し、画像のデータの読み込みに失敗します。したがって、そのような場合は、RequestOptions#override()を使用してGlideに適用するのが最良のオプションです。

try {
    String url = "" /* URL of Image */;

    if (url.startsWith("http://"))
        url = url.replace("http://", "https://");

    RequestOptions requestOptions = new RequestOptions();
    requestOptions.placeholder(R.mipmap.app_icon);
    requestOptions.error(R.mipmap.app_icon);
    Glide
        .with(context)
        .setDefaultRequestOptions(requestOptions)
        .load(url)
        .into(imgView);
} catch (Exception e) {
    e.printStackTrace();
}
0
Harpreet

解決策は私にとってうまくいきます:
1。 build.gradle(Module:app)を更新します

    implementation "com.github.bumptech.glide:glide:4.7.1"
        kapt "com.github.bumptech.glide:compiler:4.7.1"
        implementation "com.squareup.okhttp3:okhttp:3.14.0"
        implementation ('com.github.bumptech.glide:okhttp3-integration:4.7.1'){
            exclude group: 'glide-parent'
        }
  1. グライドのタイムアウトを設定する

     @GlideModule
        class MyAppGlideModule : AppGlideModule() {
            override fun registerComponents(context: Context, glide: Glide, registry: Registry) {
                val client = OkHttpClient.Builder()
                    .readTimeout(30, TimeUnit.SECONDS)
                    .connectTimeout(30, TimeUnit.SECONDS)
                    .build()
                val factory = OkHttpUrlLoader.Factory(client)
                glide.registry.replace(GlideUrl::class.Java, InputStream::class.Java, factory)
            }
        }
    
0
Anh Duy

@ievgenの回答と同じです。

  • インターネット接続を確認してください
  • Android 8または9のHTTPS接続の問題 (ここ
  • この問題は、無効な [〜#〜] url [〜#〜] 、または末尾にスペースまたは/スラッシュがあるために発生する可能性があります

私のプロジェクトはTMDBからAPIを取得していましたが、val BASE_IMAGE = http://image.tmdb.org/t/p/w780/を使用して、最後のw780/ "スラッシュ"に注意してください。

誤って連結されています。例:

W/Glide: Load failed for http://image.tmdb.org/t/p/w780//qJdfO3ahgAMf2rcmhoqngjBBZW1.jpg with size [-2147483648x-2147483648]

末尾の/スラッシュを削除すると、問題が解決しました。例:

http://image.tmdb.org/t/p/w780/ -> http://image.tmdb.org/t/p/w780

これが私の設定です:

Glide: 4.9.0
Android Studio: 3.4.1 (Grale Build Tools)
0
mochadwi