Добавление drawable в TextView

298
31 мая 2021, 20:10

Доброго времени суток. Вопрос следующий: при запуске кода с подобным TextView Android Studio выдаёт следующую ошибку: "Binary XML file line #40: Error inflating class TextView". Если убрать строчку "android:drawableStart="@drawable/ic_arrow_back_white"

то ошибка пропадает, эта строчка просто должна добавлять картинку в начало TextView, не могу понять почему вылезает ошибка, подскажите пожалуйста в чём дело. Заранее спасибо!

Ошибка полностью:

android.view.InflateException: Binary XML file line #44: Error inflating class TextView
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
        at com.example.testingsmr.CreepingFragment.onCreateView(CreepingFragment.java:42)
        at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2439)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1460)
        at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
        at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:802)
        at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625)
        at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411)
        at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366)
        at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273)
        at androidx.fragment.app.FragmentManagerImpl$1.run(FragmentManager.java:733)
        at android.os.Handler.handleCallback(Handler.java:808)
        at android.os.Handler.dispatchMessage(Handler.java:103)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:5299)
        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:831)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:647)
        at dalvik.system.NativeStart.main(Native Method)
     Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_arrow_back_white.xml from drawable resource ID #0x7f070066
        at android.content.res.Resources.loadDrawable(Resources.java:2152)
        at android.content.res.TypedArray.getDrawable(TypedArray.java:602)
        at android.widget.TextView.<init>(TextView.java:840)
        at androidx.appcompat.widget.AppCompatTextView.<init>(AppCompatTextView.java:87)
        at androidx.appcompat.widget.AppCompatTextView.<init>(AppCompatTextView.java:83)
        at androidx.appcompat.app.AppCompatViewInflater.createTextView(AppCompatViewInflater.java:177)
        at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:102)
        at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1266)
        at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1316)
        at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:172)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:684)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
        at com.example.testingsmr.CreepingFragment.onCreateView(CreepingFragment.java:42) 
        at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2439) 
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1460) 
        at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784) 
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852) 
        at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:802) 
        at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625) 
        at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411) 
        at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366) 
        at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273) 
        at androidx.fragment.app.FragmentManagerImpl$1.run(FragmentManager.java:733) 
        at android.os.Handler.handleCallback(Handler.java:808) 
        at android.os.Handler.dispatchMessage(Handler.java:103) 
        at android.os.Looper.loop(Looper.java:193) 
        at android.app.ActivityThread.main(ActivityThread.java:5299) 
        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:831) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:647) 
        at dalvik.system.NativeStart.main(Native Method) 
     Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #1: 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:2148)
        at android.content.res.TypedArray.getDrawable(TypedArray.java:602) 
        at android.widget.TextView.<init>(TextView.java:840) 
        at androidx.appcompat.widget.AppCompatTextView.<init>(AppCompatTextView.java:87) 
        at androidx.appcompat.widget.AppCompatTextView.<init>(AppCompatTextView.java:83) 
        at androidx.appcompat.app.AppCompatViewInflater.createTextView(AppCompatViewInflater.java:177) 
        at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:102) 
        at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1266) 
        at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1316) 
        at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:172) 
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:684) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
        at com.example.testingsmr.CreepingFragment.onCreateView(CreepingFragment.java:42) 
        at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2439) 
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1460) 
        at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784) 
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852) 
        at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:802) 
        at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625) 
        at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411) 
        at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366) 
        at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273) 
        at androidx.fragment.app.FragmentManagerImpl$1.run(FragmentManager.java:733) 
        at android.os.Handler.handleCallback(Handler.java:808) 
        at android.os.Handler.dispatchMessage(Handler.java:103) 
        at android.os.Looper.loop(Looper.java:193) 
        at android.app.ActivityThread.main(ActivityThread.java:5299) 
        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:831) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:647) 
        at dalvik.system.NativeStart.main(Native Method) 

<TextView
                android:id="@+id/back_textView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="8dp"
                android:layout_marginTop="8dp"
                android:gravity="center"
                android:text="Back"
                android:textColor="@color/color_white"
                android:drawableStart="@drawable/ic_arrow_back_white"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

Xml код вектора:

<vector android:height="24dp" android:tint="#FFFFFF"
    android:viewportHeight="24.0" android:viewportWidth="24.0"
    android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
    <path android:fillColor="#FFFFFF" android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z"/>
</vector>

Содержимое build.gradle :

apply plugin: 'com.android.application'
android {
    dataBinding {
        enabled = true
    }
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.testingsmr"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary = true
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}
repositories {
    maven { url 'https://jitpack.io' }
}
dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'androidx.vectordrawable:vectordrawable:1.0.1'
    implementation 'androidx.cardview:cardview:1.0.0'
    implementation 'androidx.recyclerview:recyclerview:1.1.0-alpha06'
    implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    implementation 'com.google.android.material:material:1.0.0'
}
Answer 1

Итак, почему-то не получается закрыть вопрос и признать какой-то из комментариев пользователя ЮрийСПб ответом, хотя это его ответ подытожу: Ответ дал пользователь ЮрийСПб за что ему огромное спасибо!

Есть несколько вариантов:

  1. Использовать не векторную анимацию
  2. Отказаться от поддержки API 19
  3. Своеобразный костыль: Если нужно задать картинку например на TextView, то просто задавать картинку ImageButton или ImageView и привязывать её к TextView, если же нужно задать текст на кнопку ImageView, то задавать текст TextView и привязывать к ImageView. И так можно делать с любыми элементами по аналогии
READ ALSO
Как сделать плавную загрузку в ListView (Android)

Как сделать плавную загрузку в ListView (Android)

У меня есть горизонтальный progressBarИ в начале загрузки в ListView я устанавливаю значение progressBar

242
Помогите с реализацией

Помогите с реализацией

Я учусь работать на движке libgdx (и box2d соответственно) и хочу реализовать следующееУ меня есть персонаж, и я хочу, чтобы при его движении за ним...

119