1. 程式人生 > >Glide的 java.lang.RuntimeException: Expected instanceof GlideModule, but found:

Glide的 java.lang.RuntimeException: Expected instanceof GlideModule, but found:

問題一

在新增過混淆規則後,App打包的時候,發現報錯了

     java.lang.RuntimeException: Expected instanceof GlideModule, but found: [email protected]
     at com.bumptech.glide.module.ManifestParser.parseModule(ManifestParser.java:87)
     at com.bumptech.glide.module.ManifestParser.parse(ManifestParser.java:47)

這意思是ManifestParser解析出問題了,可以看到

 /**
   * Returns {@code true} if Glide should check the AndroidManifest for {@link GlideModule}s.
   *
   * <p>Implementations should return {@code false} after they and their dependencies have migrated
   * to Glide's annotation processor.
   *
   * <p>Returns {@code true} by default.
   */
   public boolean isManifestParsingEnabled() {
    return true;
  }

依賴中使用了Glide的 annotation processor.需要在他的實現類裡返回false
所以解決方案是在你自己寫的實現AppGlideModule那個類中新增如下方法即可:

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

問題二:

Unresolved reference GlideApp

解決完問題一,發現又報了問題二
原來是需要在Glide的Moudle處進行make project.
需要在使用Glide的地方使用GlideApp
make project後,發現有了GlideApp但是依然報這個錯誤,經過搜尋發現,是kotlin

不相容GlideApp,就改為了Java,

參考連結https://stackoverflow.com/questions/46638056/how-to-use-glidemodule-on-glide-4