Мигрировал с Glide 3 до 4 и имел ошибку AbstractMethodError при запуске приложения - PullRequest
0 голосов
/ 26 октября 2018

У меня есть приложение, использующее Glide 3.8.0, и я только что переместил его на 4.8.0.После переноса всего кода для использования нового API Glide я обнаружил, что мое приложение запускает эту ошибку при попытке загрузить изображение из сети:

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...

Я выполнил настройку объяснено в официальной документации .По его просьбе я написал класс, который расширяет AppGlideModule, он аннотирован @GlideModule, и он пуст.Пустой?Официальная документация гласит:

Вам не нужно реализовывать какие-либо методы в AppGlideModule для создаваемого API.Вы можете оставить класс пустым, если он расширяет AppGlideModule и аннотируется @ GlideModule.

Согласно сообщению Error, моя проблема наверняка связана с registerComponents(), ноЯ также попытался реализовать его с пустой реализацией, и проблема остается.

1 Ответ

0 голосов
/ 26 октября 2018

Как объяснено в AppGlideModule JavaDoc (и, насколько я знаю, только там ...), если вы закончили с миграцией с 3.xx на 4.xx, вы должны реализовать isManifestParsingEnabled()возвращая false.

Итак, вы получите CustomAppGlideModule как этот:

@GlideModule
public class QNGlideModule extends AppGlideModule {

    @Override
    public boolean isManifestParsingEnabled() {
        return false;
    }
}
...