I am using Design Support Library version 23.4.0. I have enabled the gradle flag:
defaultConfig { vectorDrawables.useSupportLibrary = true }
I am using build tools version 23.0.2, but still, I am getting Resources$NotFoundException
on KitKat or lower.
It is occurring when I use android:drawableLeft
or imageView.setImageResource(R.drawable.drawable_image)
.
And yes, I am putting this on every activity where I am using drawables
static { AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); }
Is this a bug of the support library?
It took 3 separate things for me to get this to work using support library 23.4.0:
Add this to build.gradle
defaultConfig { vectorDrawables.useSupportLibrary = true }
Add the following to onCreate of your Application
class
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
(From the reference of this link - "https://stackoverflow.com/a/45582033/10752962")
In API less then 21,use this line before setContentView()
;
For all XML views in which you are setting a vector drawable replace
android:src
with
app:srcCompat
and in the code replace this:
imageView.setImageResource(...);
with
imageView.setImageDrawable(...);
To complement some of the answers here: backward-compatible support for VectorDrawables comes with a price and doesn't work in all cases.
In which cases does it work? I've made this diagram to help (valid for Support Library 23.4.0 to at least 25.1.0).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With