Failed to find GeneratedAppGlideModule...(bug0)

3,144 阅读1分钟

错误日志

GeneratedAppGlideModule 使用glide加载图片出现Failed to find GeneratedAppGlideModule. You should include an annotationProcessor compile dependency on com.github.bumptech.glide:compiler in your application and a @GlideModule annotated AppGlideModule implementation or LibraryGlideModules will be silently ignored异常警告。

配置

    api 'com.github.bumptech.glide:glide:4.11.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'

module使用Glide版本为4.11.0。

解决方案

import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;

/**
 * Created by ... on ...
 * Description: ...
 */
@GlideModule
public class MAppGlideModule extends AppGlideModule {

}

创建MAppGlideModule继承AppGlideModule,并添加注解@GlideModule即可解决上述问题。

选修

当应用程序和其module依赖了同一module中的Glide,需要在MAppGlideModule中重写isManifestParsingEnabled方法并返回false:

    @Override
    public boolean isManifestParsingEnabled() {
        return false;
    }

如果想实现自己需要的配置可以在MAppGlideModule中重写applyOptions:

   @Override
    public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) {
        ...;
    }

通过GlideBuilder实现自定义配置:

public final class GlideBuilder {
  private final Map<Class<?>, TransitionOptions<?, ?>> defaultTransitionOptions = new ArrayMap<>();
  private Engine engine;
  private BitmapPool bitmapPool;
  private ArrayPool arrayPool;
  private MemoryCache memoryCache;
  private GlideExecutor sourceExecutor;
  private GlideExecutor diskCacheExecutor;
  private DiskCache.Factory diskCacheFactory;
  private MemorySizeCalculator memorySizeCalculator;
  private ConnectivityMonitorFactory connectivityMonitorFactory;
  private int logLevel = Log.INFO;
  private RequestOptionsFactory defaultRequestOptionsFactory =
      new RequestOptionsFactory() {
        @NonNull
        @Override
        public RequestOptions build() {
          return new RequestOptions();
        }
      };
  @Nullable private RequestManagerFactory requestManagerFactory;
  private GlideExecutor animationExecutor;
  private boolean isActiveResourceRetentionAllowed;
  @Nullable private List<RequestListener<Object>> defaultRequestListeners;
  private boolean isLoggingRequestOriginsEnabled;
  private boolean isImageDecoderEnabledForBitmaps;
  ...
  }

自定义的配置包括缓存,线程等等,开发者可根据实际需要自定义。