情況 App採用Glide做載入網路圖片功能。穩定版本的App,突然有很多圖片無法載入出來,經排查,除了Glide框架已經緩存過的圖片其他圖片都觸發了Glide.onError 異常為 大意是系統無法生成GlideModule。 我的編譯環境: 第一個解決方案: 無效 第二個解決方案 用 Java ...
情況
App採用Glide做載入網路圖片功能。穩定版本的App,突然有很多圖片無法載入出來,經排查,除了Glide框架已經緩存過的圖片其他圖片都觸發了Glide.onError
異常為
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'
第一個解決方案:
無效
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;
@GlideModule
public class CMAppGlideModule extends AppGlideModule {
@Override
public boolean isManifestParsingEnabled() {
return false;
}
}
第二個解決方案
用Java寫了CMAppGlideModule
這個類後,再對build.gradle的Glide的依賴進行修改
如下:annotationProcessor
改為 kapt
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排除掉