AppCompatDelegate.setCompatVectorFromResourcesEnabled(true) doesn't work in Service and AppWidgetProvider

Viewed 1368

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)
0 Answers
Related