因上下文4.3.1而滑行崩溃

时间:2017-11-16 10:52:16

标签: android android-glide

在Glide 4.3的新版本中,我尝试使用它,但每当我使用它时,它都会崩溃,无论我传递给它的上下文。

这是向我显示的错误

   java.lang.AbstractMethodError: abstract method "void com.bumptech.glide.module.RegistersComponents.registerComponents(android.content.Context, com.bumptech.glide.Glide, com.bumptech.glide.Registry)"

这是我尝试的代码:

Glide.with(getApplicationContext()).
            load(url)
            .into(imageView);

   Glide.with(getContext()).
            load(url)
            .into(imageView);

它给了我那个警告

W/Glide: 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

和gradle中的lib代码

compile 'com.github.bumptech.glide:glide:4.3.1'
annotationProcessor 'com.github.bumptech.glide:compiler:4.3.1'

Update1: Waring Solved通过添加扩展AppGlideModule的类

import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;

@GlideModule
public final class MyAppGlideModule extends AppGlideModule {}

但仍然存在同样的错误

2 个答案:

答案 0 :(得分:3)

请在AppGlideModule类上添加以下方法

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

为了保持与Glide v3的GlideModules的向后兼容性,Glide仍会从应用程序和任何包含的库中解析AndroidManifest.xml文件,并将包含清单中列出的任何旧版GlideModule。虽然此功能将在未来版本中删除,但我们暂时保留了此行为以简化过渡。   如果您已经迁移到Glide v4 AppGlideModule和LibraryGlideModule,则可以完全禁用清单解析。这样做可以改善Glide的初始启动时间,并避免尝试解析元数据时的一些潜在问题。要禁用清单解析,请覆盖AppGlideModule实现中的isManifestParsingEnabled()方法

检查:http://bumptech.github.io/glide/doc/configuration.html

答案 1 :(得分:0)

对于那些像我一样来到这里并且花了两天时间弄清楚AppGlideModule在哪里的人,我为那些你必须在你的应用程序中创建一个类的人编写它并命名为“MyAppGlideModule”然后你应该把这个代码放入那个班级

package com.arash;


import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;

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

就是这样。