从Glide 3迁移到4,并在启动应用程序时出现AbstractMethodError

时间:2018-10-26 17:05:29

标签: android-glide

我有一个使用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()有关,但我也尝试通过空白实现来实现,但问题仍然存在。

1 个答案:

答案 0 :(得分:1)

AppGlideModule的JavaDoc(据我所知,仅在那里...)中所述,如果完成了从3.xx到4.xx的迁移,则必须实现{ {1}}返回isManifestParsingEnabled()

因此,您将以这样的false结尾:

CustomAppGlideModule