【问题标题】:Migrated from Glide 3 to 4 and having a AbstractMethodError when launching the app从 Glide 3 迁移到 4 并在启动应用程序时出现 AbstractMethodError
【发布时间】:2018-10-27 11:27:13
【问题描述】:

我有一个使用 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 注释,它是空的。空的?官方文档说:

您无需在 AppGlideModule 中实现任何方法即可生成 API。只要类扩展了 AppGlideModule 并带有 @GlideModule 注释,您就可以将其留空。

根据Error的消息,我的问题肯定与registerComponents()有关,但我也尝试用空白实现来实现它,问题仍然存在。

【问题讨论】:

    标签: android-glide


    【解决方案1】:

    正如AppGlideModule 的JavaDoc 中所解释的(据我所知,只有那里...),如果您完成了从3.x.x 到4.x.x 的迁移,您必须实现isManifestParsingEnabled()返回false

    所以,你会以这样的CustomAppGlideModule 结尾:

    @GlideModule
    public class QNGlideModule extends AppGlideModule {
    
        @Override
        public boolean isManifestParsingEnabled() {
            return false;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 2011-07-13
      • 2015-04-21
      • 2011-12-01
      • 2014-03-04
      • 2015-10-17
      相关资源
      最近更新 更多