Ресурс вектора заполнителя Glide не найден, исключение

Недавно я пытаюсь добавить Vector Drawable в свою работу. Я использую glide для установки своих рисунков. Вот мой код:

Glide
                .with(mContext)
                .load(resDrawable)
                .placeholder(placeHolderResDrawable)
                .centerCrop()
                .bitmapTransform(new CropCircleTransformation(MyLruBitmapPool.getInstance()))
                .into(imgRoundedView);

Здесь я поставил vector drawable в resDrawable и placeHolderResDrawable. На устройстве Lolipop все работало нормально. Но когда я протестировал его в less than lolipop, он вылетел. При попытке поставить drawable в placeholder выдавало Resources$NotFoundException.

Вот отчет о сбое:

android.content.res.Resources$NotFoundException: файл res/drawable/default_round_profile.xml из доступного для рисования идентификатора ресурса #0x7f02013d в android.content.res.Resources.loadDrawable(Resources.java:3451) в android.content.res.Resources. getDrawable(Resources.java:1894) на com.bumptech.glide.request.GenericRequest.getPlaceholderDrawable(GenericRequest.java:395) на com.bumptech.glide.request.GenericRequest.begin(GenericRequest.java:265) на com.bumptech .glide.manager.RequestTracker.runRequest(RequestTracker.java:36) на com.bumptech.gli de.GenericRequestBuilder.into(GenericRequestBuilder.java:616) в com.bumptech.glide.GenericRequestBuilder.into(GenericRequestBuilder.java:652) в com.bumptech.glide.DrawableRequestBuilder.into(DrawableRequestBuilder.java:436)


person Sayem    schedule 18.05.2016    source источник
comment
опубликуйте код default_round_profile.xml   -  person Sathish Kumar J    schedule 18.05.2016
comment
проверьте, есть ли у вас заполнитель в папке v21   -  person JAAD    schedule 18.05.2016
comment
Обратитесь к этому: stackoverflow.com/a/35898693/6127411   -  person Janki Gadhiya    schedule 18.05.2016
comment
как я уже сказал, это работает в лолипопе, но разбилось в нижеприведенном лолипопе. @ankit я поместил в папку с возможностью рисования по умолчанию   -  person Sayem    schedule 18.05.2016
comment
Векторный рисунок не поддерживает перед леденец   -  person JAAD    schedule 18.05.2016
comment
см. эту ссылку medium.com/@ Крисбейнс/   -  person JAAD    schedule 18.05.2016
comment
@ankitagrawal в статье chrisbanes говорит: Позволяет разработчикам легко использовать «векторные» рисунки на всех устройствах под управлением Android 2.1 и выше.   -  person Sayem    schedule 18.05.2016
comment
да, но есть шаг, как включить его, и используете ли вы эту версию библиотеки поддержки   -  person JAAD    schedule 18.05.2016
comment
@ankitagrawal да, я сделал   -  person Sayem    schedule 18.05.2016
comment
Давайте продолжим это обсуждение в чате.   -  person JAAD    schedule 18.05.2016


Ответы (1)


Попробуйте получить рисунок с помощью ContextCompat и установите его в качестве заполнителя:

ContextCompat.getDrawable(mContext, placeHolderResDrawable);

Так было бы:

Glide.with(mContext)
     .load(resDrawable)
     .placeholder(ContextCompat.getDrawable(mContext, placeHolderResDrawable))
     .centerCrop()
     .bitmapTransform(new CropCircleTransformation(MyLruBitmapPool.getInstance()))
     .into(imgRoundedView);

Обновление для Glide v4:

Glide.with(mContext)
     .load(resDrawable)
     .apply(new RequestOptions()
         .placeholder(ContextCompat.getDrawable(mContext, placeHolderResDrawable))
         .centerCrop()
         .transform(new CropCircleTransformation(MyLruBitmapPool.getInstance())))
     .into(imgRoundedView);
person Sdghasemi    schedule 19.04.2017