I am using vector drawables in my project and supports SDK < 21. I am also using gradle plugin 3.00 and have also added
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
to my build.gradle file.
Then I load the drawable thus
Drawable drawable = ResourcesCompat.getDrawable(contextRef.getResources(), drawableId, null);
In activities and fragments, vector drawables works with no problems on all android versions.However, in services and widget providers, it still throws that android.content.res.Resources$NotFoundException.
Please how can I use vector drawables in Services and AppWidgetProvider?
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.xoo.player, PID: 5688
java.lang.RuntimeException: Unable to create service com.xoo.player.playback.PlayerService: android.content.res.Resources$NotFoundException: File res/drawable/ic_track_round_light_medium.xml from drawable resource ID #0x7f0700fd
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3043)
at android.app.ActivityThread.access$1800(ActivityThread.java:156)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1446)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5883)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_track_round_light_medium.xml from drawable resource ID #0x7f0700fd
at android.content.res.Resources.loadDrawable(Resources.java:2134)
at android.content.res.Resources.getDrawable(Resources.java:711)
at android.support.v4.content.res.ResourcesCompat.getDrawable(ResourcesCompat.java:82)
at com.xoo.player.utils.MyConvert.VectorDrawableToBitmap(MyConvert.java:41)
at com.xoo.player.playback.PlayerService.initMediaSession(PlayerService.java:177)
at com.xoo.player.playback.PlayerService.onCreate(PlayerService.java:147)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3021)
at android.app.ActivityThread.access$1800(ActivityThread.java:156)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1446)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5883)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_track_light.xml from drawable resource ID #0x7f0700fb
at android.content.res.Resources.loadDrawable(Resources.java:2134)
at android.content.res.Resources.getDrawable(Resources.java:711)
at android.graphics.drawable.LayerDrawable.inflate(LayerDrawable.java:159)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:937)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:877)
at android.content.res.Resources.loadDrawable(Resources.java:2130)
at android.content.res.Resources.getDrawable(Resources.java:711)
at android.support.v4.content.res.ResourcesCompat.getDrawable(ResourcesCompat.java:82)
at com.xoo.player.utils.MyConvert.VectorDrawableToBitmap(MyConvert.java:41)
at com.xoo.player.playback.PlayerService.initMediaSession(PlayerService.java:177)
at com.xoo.player.playback.PlayerService.onCreate(PlayerService.java:147)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3021)
at android.app.ActivityThread.access$1800(ActivityThread.java:156)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1446)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5883)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)
at dalvik.system.NativeStart.main(Native Method)
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #0: invalid drawable tag vector
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:933)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:877)
at android.content.res.Resources.loadDrawable(Resources.java:2130)
at android.content.res.Resources.getDrawable(Resources.java:711)
at android.graphics.drawable.LayerDrawable.inflate(LayerDrawable.java:159)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:937)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:877)
at android.content.res.Resources.loadDrawable(Resources.java:2130)
at android.content.res.Resources.getDrawable(Resources.java:711)
at android.support.v4.content.res.ResourcesCompat.getDrawable(ResourcesCompat.java:82)
at com.xoo.player.utils.MyConvert.VectorDrawableToBitmap(MyConvert.java:41)
at com.xoo.player.playback.PlayerService.initMediaSession(PlayerService.java:177)
at com.xoo.player.playback.PlayerService.onCreate(PlayerService.java:147)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3021)
at android.app.ActivityThread.access$1800(ActivityThread.java:156)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1446)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5883)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)
at dalvik.system.NativeStart.main(Native Method)