The news about the possibility of using vectors in resources has not yet become so dusty as the update for Android Studio and its ilk came out on April 7 . Update sucked new version of Gradle (2.0) . As a result, my application crashes on the Resources$NotFoundException on the PRE-Lollipop versions, but only on those resources where the vector was used as a state in the selector .

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/ic_like_stroke_24dp" android:state_checked="false"/> <item android:drawable="@drawable/ic_like_solid_red_24dp" android:state_checked="true"/> </selector> 

This is a custom checkbox, I set the resource programmatically via setButtonDrawable() and when I run it on the PRE-Lollipop versions I get a big steak on the way out. If in setButtonDrawable() to submit just a simple vector, then everything works fine, except that I don’t need it, since there are no more cheytcox steatets. Naturally, for work in vectors in the gradle file, I specified the necessary parameters. From the beginning of the steak I sinned on the vector file itself, but when I set the ic_like_stroke_24dp resource to the widget directly, the crash is not called. Here are the vectors themselves for experiments.

 ic_like_stroke_24dp.xml 
 <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="128.0" android:viewportHeight="128.0"> <path android:fillColor="#909090" android:pathData="M88.3,16c17.2,0,31.2,13.9,31.2,31.2c0,0,0,0,0,0c-0.1,5.7-1.8,11.3-5,16c-3.4,4.6-7.1,8.9-11.1,13L70,109.5c-3.4,3.3-8.8,3.3-12.1,0L24.6,76.2c-4-4.1-7.7-8.4-11.1-13c-3.2-4.7-4.9-10.3-5-16C8.5,29.9,22.5,16,39.8,16c8.5,0,16.5,3.5,22.4,9.6l0.6,0.7c0.5,0.6,1.4,0.8,2.1,0.3c0.1-0.1,0.2-0.2,0.3-0.3l0.6-0.7C71.7,19.5,79.8,16,88.3,16M88.3,8c-8.8,0-17.4,2.9-24.3,8.5C57.1,10.9,48.5,8,39.6,8C18,8,0.5,25.5,0.4,47.2C0.5,54.6,2.8,61.8,7,67.9c3.7,4.9,7.7,9.6,11.9,13.9l33.3,33.3c6.5,6.5,17,6.5,23.4,0L109,81.9c4.3-4.4,8.3-9,11.9-13.9c4.2-6.1,6.5-13.3,6.6-20.7C127.5,25.5,110,8,88.3,8L88.3,8z" /> </vector> 

and

 ic_like_solid_red_24dp <?xml version="1.0" encoding="utf-8"?> <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="128.0" android:viewportHeight="128.0"> <path android:fillColor="#ff0000" android:pathData="M88.3,8c-8.8,0-17.4,2.9-24.3,8.5C57.1,10.9,48.5,8,39.6,8C18,8,0.5,25.5,0.4,47.2C0.5,54.6,2.8,61.8,7,67.9 c3.7,4.9,7.7,9.6,11.9,13.9l33.3,33.3c6.5,6.5,17,6.5,23.4,0L109,81.9c4.3-4.4,8.3-9,11.9-13.9c4.2-6.1,6.5-13.3,6.6-20.7 C127.5,25.5,110,8,88.3,8z" /> </vector> 

Before I updated I had the following parameters in gradle (for Gradle 1.5)

 android { defaultConfig { generatedDensities = [] } aaptOptions { additionalParameters "--no-version-vectors" } } 

After updating Android Studio and Gradle (2.0), I replaced the above described with

 android { defaultConfig { vectorDrawables.useSupportLibrary = true } } 

And hence the question, where to dig? After the upgrade, the ability to use a vector in selector is gone. You can roll back the studio to the previous version, but not the exit. Steak:

  Fatal Exception: android.content.res.Resources$NotFoundException: File res/drawable/check_box_like.xml from drawable resource ID #0x7f02004d at android.content.res.Resources.loadDrawable(Resources.java:1953) at android.content.res.Resources.getDrawable(Resources.java:660) at android.support.v7.widget.ResourcesWrapper.getDrawable(ResourcesWrapper.java:128) at android.support.v7.widget.TintResources.getDrawable(TintResources.java:45) at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:323) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:201) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:191) at android.support.v7.widget.AppCompatCheckBox.setButtonDrawable(AppCompatCheckBox.java:74) at view.catalogs.CatalogListAdapter$ViewHolder.<init>(CatalogListAdapter.java:126) at view.catalogs.CatalogListAdapter.getItemView(CatalogListAdapter.java:61) at com.culiu.mhvp.core.tabs.GridViewWithHeaderBaseAdapter.createItemRow(GridViewWithHeaderBaseAdapter.java:114) at com.culiu.mhvp.core.tabs.GridViewWithHeaderBaseAdapter.getView(GridViewWithHeaderBaseAdapter.java:95) at com.culiu.mhvp.core.InnerListView$InflateFirstItemIfNeededAdapter.getView(InnerListView.java:557) at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220) at android.widget.AbsListView.obtainView(AbsListView.java:2159) at android.widget.ListView.makeAndAddView(ListView.java:1831) at android.widget.ListView.fillDown(ListView.java:674) at android.widget.ListView.fillSpecific(ListView.java:1332) at android.widget.ListView.layoutChildren(ListView.java:1642) at android.widget.AbsListView.onLayout(AbsListView.java:1994) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1695) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521) at android.widget.LinearLayout.onLayout(LinearLayout.java:1434) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1695) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521) at android.widget.LinearLayout.onLayout(LinearLayout.java:1434) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.support.design.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1091) at android.support.design.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:801) at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:815) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1187) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521) at android.widget.LinearLayout.onLayout(LinearLayout.java:1434) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521) at android.widget.LinearLayout.onLayout(LinearLayout.java:1434) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1892) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1711) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) at android.view.Choreographer.doCallbacks(Choreographer.java:562) at android.view.Choreographer.doFrame(Choreographer.java:532) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) at android.os.Handler.handleCallback(Handler.java:725) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5041) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) at dalvik.system.NativeStart.main(NativeStart.java) Caused by android.content.res.Resources$NotFoundException: File res/drawable/ic_like_stroke_24dp.xml from drawable resource ID #0x7f02009d at android.content.res.Resources.loadDrawable(Resources.java:1953) at android.content.res.Resources.getDrawable(Resources.java:660) at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173) at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:885) at android.graphics.drawable.Drawable.createFromXml(Drawable.java:822) at android.content.res.Resources.loadDrawable(Resources.java:1950) at android.content.res.Resources.getDrawable(Resources.java:660) at android.support.v7.widget.ResourcesWrapper.getDrawable(ResourcesWrapper.java:128) at android.support.v7.widget.TintResources.getDrawable(TintResources.java:45) at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:323) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:201) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:191) at android.support.v7.widget.AppCompatCheckBox.setButtonDrawable(AppCompatCheckBox.java:74) at view.catalogs.CatalogListAdapter$ViewHolder.<init>(CatalogListAdapter.java:126) at view.catalogs.CatalogListAdapter.getItemView(CatalogListAdapter.java:61) at com.culiu.mhvp.core.tabs.GridViewWithHeaderBaseAdapter.createItemRow(GridViewWithHeaderBaseAdapter.java:114) at com.culiu.mhvp.core.tabs.GridViewWithHeaderBaseAdapter.getView(GridViewWithHeaderBaseAdapter.java:95) at com.culiu.mhvp.core.InnerListView$InflateFirstItemIfNeededAdapter.getView(InnerListView.java:557) at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220) at android.widget.AbsListView.obtainView(AbsListView.java:2159) at android.widget.ListView.makeAndAddView(ListView.java:1831) at android.widget.ListView.fillDown(ListView.java:674) at android.widget.ListView.fillSpecific(ListView.java:1332) at android.widget.ListView.layoutChildren(ListView.java:1642) at android.widget.AbsListView.onLayout(AbsListView.java:1994) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1695) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521) at android.widget.LinearLayout.onLayout(LinearLayout.java:1434) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1695) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521) at android.widget.LinearLayout.onLayout(LinearLayout.java:1434) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.support.design.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1091) at android.support.design.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:801) at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:815) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1187) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521) at android.widget.LinearLayout.onLayout(LinearLayout.java:1434) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521) at android.widget.LinearLayout.onLayout(LinearLayout.java:1434) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1892) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1711) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) at android.view.Choreographer.doCallbacks(Choreographer.java:562) at android.view.Choreographer.doFrame(Choreographer.java:532) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) at android.os.Handler.handleCallback(Handler.java:725) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5041) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) at dalvik.system.NativeStart.main(NativeStart.java) Caused by org.xmlpull.v1.XmlPullParserException: Binary XML file line #2: invalid drawable tag vector at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:881) at android.graphics.drawable.Drawable.createFromXml(Drawable.java:822) at android.content.res.Resources.loadDrawable(Resources.java:1950) at android.content.res.Resources.getDrawable(Resources.java:660) at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173) at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:885) at android.graphics.drawable.Drawable.createFromXml(Drawable.java:822) at android.content.res.Resources.loadDrawable(Resources.java:1950) at android.content.res.Resources.getDrawable(Resources.java:660) at android.support.v7.widget.ResourcesWrapper.getDrawable(ResourcesWrapper.java:128) at android.support.v7.widget.TintResources.getDrawable(TintResources.java:45) at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:323) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:201) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:191) at android.support.v7.widget.AppCompatCheckBox.setButtonDrawable(AppCompatCheckBox.java:74) at view.catalogs.CatalogListAdapter$ViewHolder.<init>(CatalogListAdapter.java:126) at view.catalogs.CatalogListAdapter.getItemView(CatalogListAdapter.java:61) at com.culiu.mhvp.core.tabs.GridViewWithHeaderBaseAdapter.createItemRow(GridViewWithHeaderBaseAdapter.java:114) at com.culiu.mhvp.core.tabs.GridViewWithHeaderBaseAdapter.getView(GridViewWithHeaderBaseAdapter.java:95) at com.culiu.mhvp.core.InnerListView$InflateFirstItemIfNeededAdapter.getView(InnerListView.java:557) at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220) at android.widget.AbsListView.obtainView(AbsListView.java:2159) at android.widget.ListView.makeAndAddView(ListView.java:1831) at android.widget.ListView.fillDown(ListView.java:674) at android.widget.ListView.fillSpecific(ListView.java:1332) at android.widget.ListView.layoutChildren(ListView.java:1642) at android.widget.AbsListView.onLayout(AbsListView.java:1994) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1695) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521) at android.widget.LinearLayout.onLayout(LinearLayout.java:1434) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1695) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521) at android.widget.LinearLayout.onLayout(LinearLayout.java:1434) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.support.design.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1091) at android.support.design.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:801) at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:815) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1187) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521) at android.widget.LinearLayout.onLayout(LinearLayout.java:1434) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521) at android.widget.LinearLayout.onLayout(LinearLayout.java:1434) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1892) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1711) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) at android.view.Choreographer.doCallbacks(Choreographer.java:562) at android.view.Choreographer.doFrame(Choreographer.java:532) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) at android.os.Handler.handleCallback(Handler.java:725) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5041) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) at dalvik.system.NativeStart.main(NativeStart.java) 

    4 answers 4

    I ran into the news - https://plus.google.com/+AndroidDevelopers/posts/iTDmFiGrVne partially while you can forget about the vectors. The problem is solved by deleting the line in gradle

     android { defaultConfig { vectorDrawables.useSupportLibrary = true } } 

    This will increase the volume of apk, due to the conversion of vectors into png.

    • Of course, if you are satisfied with this decision, then all is well. however, you can easily roll back to support version 23.2.1 , and the method I described will help :) - andreich
    • I'll try to roll back - Chaynik

    Try first to get drawable and then shove it in the checkbox.

     Drawable drawable = ContextCompat.getDrawable(getActivity(), R.drawable.selector); mCheckBox.setButtonDrawable(drawable); 

    At the moment, this problem does not work otherwise. If you want prettiness, you will have to inherit from the checkbox or any other view that does not support the vector and either do so or create custom attributes, and inside use the method presented above so that you can set the vectors in xml

    • Alas, it will not save in any form, I answered my question - Chaynik

    I managed to run the vector on pre-lollipop . My drawable (vectors and selectors) were in the drawable-anydpi . When I opened the archive app-debug.apk - it turned out that the folder is drawable-anydpi-v21 , therefore it worked exclusively on 21 and above apishki.

    In the end, I just transferred everything from the drawable-anydpi to a regular drawable - and it all worked.

     версия = 23.3.0 

    I have run vectors on pre-lollipop . I have drawable (vectors and selectors) which location at drawable-anydpi folder. When I opened app-debug.apk archive - i saw drawable-anydpi-v21 , it means that I can use it. I moved all drawables from drawable-anydpi to drawable - and it works.

     version of appcompat = 23.3.0 

    Update: ic_account_checked.xml

     <vector xmlns:android="http://schemas.android.com/apk/res/android" android:viewportWidth="24.0" android:viewportHeight="24.0" android:width="24dp" android:height="24dp"> <path android:fillColor="#ffffff" android:pathData="M12,19.2C9.5,19.2 7.29,17.92 6,16C6.03,14 10,12.9 12,12.9C14,12.9 17.97,14 18,16C16.71,17.92 14.5,19.2 12,19.2M12,5A3,3 0,0 1,15 8A3,3 0,0 1,12 11A3,3 0,0 1,9 8A3,3 0,0 1,12 5M12,2A10,10 0,0 0,2 12A10,10 0,0 0,12 22A10,10 0,0 0,22 12C22,6.47 17.5,2 12,2Z" /> 

    ic_account_default.xml

     <vector xmlns:android="http://schemas.android.com/apk/res/android" android:viewportWidth="24.0" android:viewportHeight="24.0" android:width="24dp" android:height="24dp"> <path android:fillColor="#7fffffff" android:pathData="M12,19.2C9.5,19.2 7.29,17.92 6,16C6.03,14 10,12.9 12,12.9C14,12.9 17.97,14 18,16C16.71,17.92 14.5,19.2 12,19.2M12,5A3,3 0,0 1,15 8A3,3 0,0 1,12 11A3,3 0,0 1,9 8A3,3 0,0 1,12 5M12,2A10,10 0,0 0,2 12A10,10 0,0 0,12 22A10,10 0,0 0,22 12C22,6.47 17.5,2 12,2Z" /> 

    ic_account_selector.xml

     <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:drawable="@drawable/ic_account_checked" /> <item android:state_checked="false" android:drawable="@drawable/ic_account_default" /> 

    And now where it is used (where it using):

     <RadioButton android:id="@+id/radio_news" android:layout_width="@dimen/pressable_size" android:layout_height="@dimen/pressable_size" android:checked="true" android:button="@drawable/ic_account_selector" /> 

    Checked on api 18, 19. (Check it on api 18-19)

    • I did not divide into versions. vectors were originally stored in drawable - Chaynik
    • @Chaynik updated the answer. In general, see how you get the drawable for a custom view. You need to specify the idea in attrs.xml: <attr name="srcImage" format="reference"/> And in the class itself get drawable via TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.CustomView); mButtonDrawable = array.getDrawable(R.styleable.CustomView_srcImage); TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.CustomView); mButtonDrawable = array.getDrawable(R.styleable.CustomView_srcImage); - Victor Ponomarenko
    • Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line # 2: invalid drawable tag vector - Chaynik
    • All the same. did everything as you indicated, moreover it was done in a clean project, - Chaynik
    • Do you use vectorDrawables.useSupportLibrary = true in gradle? - Chaynik

    In each Activity where vector resources are used, you need to add:

     static { AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); }