我有一个使用Glide 3.8.0的应用程序,而我刚将其迁移到4.8.0。迁移所有代码以使用新的Glide API后,我发现我的应用尝试从网络加载图像时会启动此错误:
java.lang.AbstractMethodError: abstract method "void com.bumptech.glide.module.RegistersComponents.registerComponents(android.content.Context, com.bumptech.glide.Glide, com.bumptech.glide.Registry)"
at com.bumptech.glide.Glide.initializeGlide(Glide.java:268)
at com.bumptech.glide.Glide.initializeGlide(Glide.java:221)
at com.bumptech.glide.Glide.checkAndInitializeGlide(Glide.java:182)
at com.bumptech.glide.Glide.get(Glide.java:166)
at com.bumptech.glide.Glide.getRetriever(Glide.java:680)
at com.bumptech.glide.Glide.with(Glide.java:732)
at com.fewlaps.android.quitnow.usecase.main.MainActivity.updateAvatar(MainActivity.java:356)
etc...
我已完成设置explained in the official documentation。根据要求,我编写了一个扩展AppGlideModule
的类,并用@GlideModule
进行了注释,并且它为空。空吗官方文件说:
您无需为要生成的API实施AppGlideModule中的任何方法。您可以将类保留为空白,只要它扩展了AppGlideModule并用@GlideModule进行注释即可。
根据Error
的消息,我的问题肯定与registerComponents()
有关,但我也尝试通过空白实现来实现,但问题仍然存在。
答案 0 :(得分:1)
如AppGlideModule
的JavaDoc(据我所知,仅在那里...)中所述,如果完成了从3.xx到4.xx的迁移,则必须实现{ {1}}返回isManifestParsingEnabled()
。
因此,您将以这样的false
结尾:
CustomAppGlideModule