Glide 在Android5.0以下 加载Vector 文件导致app崩溃

问题:项目中使用了Vector 文件并使用Glide 去加载图片 ,但是4.4手机在加载的时候就会出现异常。

异常信息:

Resources$NotFoundException: File res/drawable/logo.xml from drawable resource ID #0x7f0800b8. If the resource you are trying to use is a vector resource, you may be referencing it in an unsupported way. See AppCompatDelegate.setCompatVectorFromResourcesEnabled() for more info.

检查:

项目中build.gradle都配置好了:

defaultConfig {
    ....
    vectorDrawables.useSupportLibrary = true
    ....
}

也在BaseActivity中添加了

static {
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}

但是问题依旧,所以应该是Glide 的兼容性问题。

处理方法:

需要将vector文件先抽取成drawable然后再加载,即可成功加载。

 Drawable drawable = AppCompatResources.getDrawable(mContext, R.drawable.logo);

            Glide.with(mContext).load(item.getImg()).dontAnimate().error(drawable).into((AppCompatImageView)
                    helper.getView(R.id.addassets_token_img_iv));

版权声明:本文为qq_31017737原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。