I have following in my app:
// Config
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
// Activity
public abstract class BaseActivity<T extends ViewDataBinding> extends AppCompatActivity {
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
}
// XML; Location: res/drawable
<Button
android:id="@+id/btAdd"
android:onClick="onClick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:drawableLeft="@drawable/ic_add_black_24dp"
android:padding="8dp"
android:text="@string/add"
android:textColor="@color/md_black_1000"
app:backgroundTint="@color/md_white_1000"/>
Still I get following exception on devices running android API < 21:
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_add_black_24dp.xml from drawable resource ID #0x7f070070
This is a vector drawable. I thought above two statements will have the effect, that vector drawables are converted to pngs for devices running android API < 21.
What I do:
- enable
vectorDrawables.useSupportLibrary
- call
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
- make sure the vector drawables are not located under
res/drawables-any
butres/drawables
- use
app:srcCompat
forImageViews
instead ofapp:src
=> not relevant for my issue, as I am usingandroid:drawableLeft
- I use target API 26 + support library version 26.1.0
What am I still missing?