无法在Glide 4.1.1中解析GlideApp

时间:2018-09-12 06:48:22

标签: java android android-glide

经过无数论坛讨论同一问题之后,我仍然无法解决GlideApp错误。它说无法解决。这是屏幕截图:

enter image description here

这是Java类,可以使用上面的详细信息

enter image description here

我的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;

@GlideModule
public final class CustomAppGlideModule extends AppGlideModule {
}

我正在使用它来请求:

当我使用Glide.with时出现错误消息

enter image description here

但是仍然不能解决问题。

3 个答案:

答案 0 :(得分:2)

尝试

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

DEMO

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

答案 1 :(得分:1)

尝试一下

通过将其添加到gradle中来导入Glide

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

答案 2 :(得分:1)

似乎正在进行激烈的讨论。不用担心我有解决办法。

执行以下步骤:

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

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