Я использую пользовательский фон кнопки в своем приложении, создав его в папке для рисования, как показано ниже:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="@color/otp_gray"/>
<padding android:top="10dp" android:bottom="10dp"/>
<corners android:radius="8dp"/>
</shape>
и мой XML-файл, в котором используется этот рисунок:
<Button
android:id="@+id/loginBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/app_btn_bkg"
android:text="LOGIN"
android:textColor="@android:color/white"
android:textSize="20sp"
android:padding="15dp"
android:textAllCaps="false"
android:enabled="false"
android:layout_marginTop="40dp"/>
Он работает нормально на устройстве api 24, но недавно, когда я тестировал на устройстве с леденцом на палочке (api 21), я получил эту ошибку:
Caused by: android.content.res.Resources$NotFoundException: Resource "com.jjoey.transporterdriver:drawable/app_btn_bkg" (7f08005b) is not a Drawable (color or path): TypedValue{t=0x1/d=0x7f08005b a=-1 r=0x7f08005b}
at android.content.res.Resources.loadDrawableForCookie(Resources.java:2661)
at android.content.res.Resources.loadDrawable(Resources.java:2576)
at android.content.res.TypedArray.getDrawable(TypedArray.java:749)
at android.view.View.<init>(View.java:3813)
at android.widget.TextView.<init>(TextView.java:650)
at android.widget.Button.<init>(Button.java:111)
at android.widget.Button.<init>(Button.java:107)
Насколько я понимаю, это как-то связано с обратной совместимостью, но я нене знаю, как решить эту проблему.Я прочитал, что я должен создать отдельный файл для рисования для более низких уровней API, но нет никакой возможности для этого.Я использую Android Studio 3.1.0.
Может кто-нибудь помочь мне, пожалуйста?Спасибо.