狀況java
App採用Glide作加載網絡圖片功能。穩定版本的App,忽然有不少圖片沒法加載出來,經排查,除了Glide框架已經緩存過的圖片其餘圖片都觸發了Glide.onErrorgit
異常爲github
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
大意是系統沒法生成GlideModule。緩存
個人編譯環境:網絡
Kotlin版本 1.3.61 AndroidStudio版本 3.6
//build.gradle implementation 'com.github.bumptech.glide:glide:4.9.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
第一個解決方案:app
無效框架
import com.bumptech.glide.annotation.GlideModule; import com.bumptech.glide.module.AppGlideModule; @GlideModule public class CMAppGlideModule extends AppGlideModule { @Override public boolean isManifestParsingEnabled() { return false; } }
第二個解決方案ide
用Java寫了CMAppGlideModule
這個類後,再對build.gradle的Glide的依賴進行修改測試
以下:annotationProcessor
改成 kapt
gradle
implementation 'com.github.bumptech.glide:glide:4.9.0' kapt 'com.github.bumptech.glide:compiler:4.9.0'
卸載掉reelase版本的Apk,從新運行安裝debug模式的Apk後,恢復正常。
匪夷所思的是:
在以前的release版本中,Glide註解一直都是使用annotationProcessor
都沒有出現此次的問題,因此我又將kapt
改回annotationProcessor
,而後測試debug版本的App的功能,正常。
說明annotationProcessor
與 kapt
並非引發此次bug的罪魁禍首,可是release的穩定版本並沒有新建GlideModule的註解類也一直正常運行了很長時間。而後最近我也沒法再次復現這個異常,故先記錄在這裏。
順帶一提
Glide的issue中也有相似的問題:
圖中的解決方案:
找出依賴庫中有哪一個Library,重複依賴了同一個版本的Glide,也就是repacked的庫,將這個庫中的Glide排除掉