为了账号安全,请及时绑定邮箱和手机立即绑定

无法在 Glide 4.1.1 中解析 GlideApp

无法在 Glide 4.1.1 中解析 GlideApp

幕布斯6054654 2021-09-15 14:37:54
在浏览了大量关于同一问题的论坛后,我仍然无法解决GlideApp错误。它说它无法解决。这是屏幕截图:这是使用上面详细信息的java类我的build.gradle文件已经包含:  compile 'com.github.bumptech.glide:glide:4.1.1'annotationProcessor 'com.github.bumptech.glide:compiler:4.1.1'我和我都有以下代码的课程:import com.bumptech.glide.annotation.GlideModule;import com.bumptech.glide.module.AppGlideModule;@GlideModulepublic final class CustomAppGlideModule extends AppGlideModule {}我用它来请求:当我使用Glide.with然后它错误说但它仍然没有解决问题。
查看完整描述

3 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

试试


  implementation 'com.github.bumptech.glide:glide:4.8.0'

  annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'

演示


@GlideModule

public class FlickrGlideModule extends AppGlideModule {


  @Override

  public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) {

    super.applyOptions(context, builder);

    builder.setDefaultRequestOptions(new RequestOptions().format(DecodeFormat.PREFER_ARGB_8888));

  }


  @Override

  public void registerComponents(@NonNull Context context, @NonNull Glide glide,

      @NonNull Registry registry) {

    registry.append(Photo.class, InputStream.class, new FlickrModelLoader.Factory());

  }


  // Disable manifest parsing to avoid adding similar modules twice.

  @Override

  public boolean isManifestParsingEnabled() {

    return false;

  }

}

读 AppGlideModule


供参考


你的loadImage方法将是


public static void loadImage(Context ctx,RequestOptions glideRequests, String url, ImageView imageView) {

        loadImage(ctx,glideRequests, url, imageView, DiskCacheStrategy.ALL);

    }


    public static void loadImage(Context ctx,RequestOptions glideRequests, String url, ImageView imageView, DiskCacheStrategy diskCacheStrategy) {


                 Glide.with(ctx)

                    .applyDefaultRequestOptions(requestOptions.placeholder(R.drawable.ic_stub).error(R.drawable.ic_stub))

                    .asBitmap()

                    .load(url).into(imageView);

    }

然后


ImageUtil.loadImage(context,options,obj.getPhotoUrl(),avatarImageView);


查看完整回答
反对 回复 2021-09-15
?
慕容森

TA贡献1853条经验 获得超18个赞

似乎正在进行很好的讨论。别担心。我有解决方案。


按照步骤:


添加依赖项如下(我使用的是最新版本)

implementation 'com.github.bumptech.glide:glide:4.8.0'

annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'

创建包(因为我一直使用结构化代码)myglide 并复制/粘贴以下类:

@GlideModule

public class SampleGlideModule extends AppGlideModule {

    @Override

    public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) {

        super.applyOptions(context, builder);

    }

}

现在您可以按CTRL+F9或您可以单击菜单Make Project中的Build选项。它将自动生成一个文件(您可以通过按 CTRL 并将鼠标悬停在 File 中的 ClassName 上来查看。)


final class GeneratedAppGlideModuleImpl extends GeneratedAppGlideModule {

  private final SampleGlideModule appGlideModule;

  ....

}

现在您可以非常轻松地使用GlideApp类。


如果您有任何错误,请随时与我联系。


希望它会帮助你。我一如既往地喜欢 Glide。<3


查看完整回答
反对 回复 2021-09-15
?
BIG阳

TA贡献1859条经验 获得超6个赞

尝试这个


进口Glide在增加的gradle这个


compile 'com.github.bumptech.glide:glide:3.8.0'

然后使用此代码


Glide.with(context)

        .load(url)

        .placeholder(R.drawable.ic_male)

        .error(R.drawable.imagenotfound)

        .listener(new RequestListener<String, GlideDrawable>() {

            @Override

            public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {

                // log exception

                Log.e("TAG", handle error case", e);

                return false; 

            }


            @Override

            public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {

                 Log.e("TAG", handle success case here", e);

                return false;

            }

        })

        .into(avatarImageView);


查看完整回答
反对 回复 2021-09-15
  • 3 回答
  • 0 关注
  • 261 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信