android android:drawableEnd= button svg crash

Приложение падает в эмуляторе (Nox) и на старых версиях Android


Причина...

    <Button
        android:id="@+id/btn_start_test"
        style="@style/BlueColoredButton"

        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_margin="@dimen/activity_horizontal_margin"
        android:contentDescription="@string/test_start"
       
        ==>>>>  android:drawableEnd="@drawable/ic_chevron_right_black_24dp"
        ==>>>>  android:drawableRight="@drawable/ic_chevron_right_black_24dp"
       
        android:paddingLeft="50dp"
        android:paddingRight="50dp"
        android:text="@string/test_start"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent" />
      
Еще один пример
<Chronometer    android:id="@+id/chronometer"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_alignParentLeft="true"    android:layout_alignParentStart="true"    android:layout_alignParentTop="true"    --> android:drawableLeft="@drawable/ic_timer_black_24dp"
    --> android:drawableStart="@drawable/ic_timer_black_24dp"
    android:padding="8dp"    android:textColor="@color/colorPrimaryLite"    android:visibility="gone"    tools:background="#3C85FC"    tools:ignore="RelativeOverlap"    tools:text="@string/app_name"    tools:visibility="visible" />

В приложении используются векторные иконки...
В Button android:drawableEnd

И собственно supportLibrary не поддерживает вектор в Button
Тут или заменить кнопку, например на ImageButton app:srcCompat="@drawable/ic_chevron_right_black_24dp"

А еще лучше отключить поддержку векторной графики/не включать ее...
Закомментировать в активити:

        //    static {
//        AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
//    }


build.gradle

//            vectorDrawables {
//                useSupportLibrary = true
//            }




//vectorDrawables.useSupportLibrary = true


Собственно при отключенной поддержке, градл создаст png файлы для старой версии андроид,
и все будет работать...

Включать поддержку нужно, например когда требуется из svg иконки 24x24 сделать например такие кнопки. Без включенной поддержки - на Android SDK21 векторная графика выглядит верно, старая версия андроид попытается растянуть сгенерированную 24x24 png, что выглядит крайне ужасно...

Комментариев нет:

Отправить комментарий