class com.bumptech.glide.load.engine.GlideException:无法加载资源

问题描述 投票:2回答:3

我试图通过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}
android image android-glide
3个回答
0
投票

我也遇到了这个问题。它是滑行方面的错误。使用最新版本的滑翔。

repositories {
 mavenCentral()
 google()
}

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

确保itemData.getThumbnailUri()不包含空格


0
投票

试试这个

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);

0
投票

我发现Glide无法加载HTTP网址,但如果我们使用HTTPS而不是HTTP,则可以正常工作。

它也无法加载大图像,如果图像是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
投票

该解决方案适合我: 1.更新build.gradle(模块: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) } }
© www.soinside.com 2019 - 2024. All rights reserved.