Я пытаюсь использовать ColorStateList для раскрашивания элементов в моем RecyclerView. Вот XML для моего ViewHolder:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/view_colors"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8sp"
android:id="@+id/entry_image"
android:layout_gravity="center_horizontal"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8sp"
android:id="@+id/entry_text"
android:textStyle="bold"
android:layout_gravity="center_horizontal"
/>
</LinearLayout>
А вот мой view_colors.xml, в котором содержится список состояний цветов:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@color/colorPrimary"/>
<item android:state_focused="true" android:drawable="@color/colorAccent"/>
<item android:drawable="@color/colorPrimaryDark"/>
</selector>
Когда я использовал ColorStateList в res / colors и применил его к тегу textColor, он работал нормально. Я попробовал то же самое с фоновым тегом, и получил эту ошибку. Поэтому я посмотрел на другие вопросы здесь и затем попытался использовать XML в res / drawable, который определял drawables вместо цветов (как видно выше), но это не решило проблему.
РЕДАКТИРОВАТЬ: Это нормально работает на моем телефоне с API уровня 27, но ошибка появляется на моем телефоне уровня API 23.
Вот полная трассировка стека: 2019-04-12 13: 47: 39.419 22410-22410 / com.example.realrecyclerview E / linker: сбой чтения (''): нет такого файла или каталога [fd = 31]
2019-04-12 13: 47: 39.419 22410-22410 / com.example.realrecyclerview E / linker: предупреждение: невозможно получить реальный путь для библиотеки "/data/app/com.example.realrecyclerview-1/oat/arm/ base.odex». Будет использовать имя.
2019-04-12 13: 47: 41.305 22410-22410 / com.example.realrecyclerview E / linker: сбой readlink (''): такого файла или каталога нет [fd = 38]
2019-04-12 13: 47: 41.305 22410-22410 / com.example.realrecyclerview E / linker: предупреждение: невозможно получить реальный путь для библиотеки "/system/lib/hw/gralloc.sc8830.so". Будет использовать имя.
2019-04-12 13: 47: 41.420 22410-22410 / com.example.realrecyclerview E / AndroidRuntime: ОСНОВНОЕ ИСКЛЮЧЕНИЕ: основное
Процесс: com.example.realrecyclerview, PID: 22410
android.view.InflateException: строка двоичного файла XML №2: строка двоичного файла XML №2: ошибка надувания класса
на android.view.LayoutInflater.inflate (LayoutInflater.java:539)
на android.view.LayoutInflater.inflate (LayoutInflater.java:423)
в com.example.realrecyclerview.HarvestAdapter.onCreateViewHolder (HarvestAdapter.java:48)
в com.example.realrecyclerview.HarvestAdapter.onCreateViewHolder (HarvestAdapter.java:14)
на android.support.v7.widget.RecyclerView $ Adapter.createViewHolder (RecyclerView.java:6794)
на android.support.v7.widget.RecyclerView $ Recycler.tryGetViewHolderForPositionByDeadline (RecyclerView.java:5975)
на android.support.v7.widget.RecyclerView $ Recycler.getViewForPosition (RecyclerView.java:5858)
на android.support.v7.widget.RecyclerView $ Recycler.getViewForPosition (RecyclerView.java:5854)
на android.support.v7.widget.LinearLayoutManager $ LayoutState.next (LinearLayoutManager.java:2230)
на android.support.v7.widget.GridLayoutManager.layoutChunk (GridLayoutManager.java:557)
на android.support.v7.widget.LinearLayoutManager.fill (LinearLayoutManager.java:1517)
на android.support.v7.widget.LinearLayoutManager.onLayoutChildren (LinearLayoutManager.java:612)
на android.support.v7.widget.GridLayoutManager.onLayoutChildren (GridLayoutManager.java:171)
на android.support.v7.widget.RecyclerView.dispatchLayoutStep2 (RecyclerView.java:3924)
на android.support.v7.widget.RecyclerView.dispatchLayout (RecyclerView.java:3641)
на android.support.v7.widget.RecyclerView.onLayout (RecyclerView.java:4194)
на android.view.View.layout (View.java:16645)
на android.view.ViewGroup.layout (ViewGroup.java:5471)
на android.widget.LinearLayout.setChildFrame (LinearLayout.java:1743)
на android.widget.LinearLayout.layoutHorizont (LinearLayout.java:1732)
на android.widget.LinearLayout.onLayout (LinearLayout.java:1497)
на android.view.View.layout (View.java:16645)
на android.view.ViewGroup.layout (ViewGroup.java:5471)
на android.widget.FrameLayout.layoutChildren (FrameLayout.java:336)
на android.widget.FrameLayout.onLayout (FrameLayout.java:273)
на android.view.View.layout (View.java:16645)
на android.view.ViewGroup.layout (ViewGroup.java:5471)
на android.support.v7.widget.ActionBarOverlayLayout.onLayout (ActionBarOverlayLayout.java:444)на android.view.View.layout (View.java:16645) на android.view.ViewGroup.layout (ViewGroup.java:5471) на android.widget.FrameLayout.layoutChildren (FrameLayout.java:336) на android.widget.FrameLayout.onLayout (FrameLayout.java:273) в android.view.View.layout (View.java:16645) в android.view.ViewGroup.layout (ViewGroup.java:5471) в android.widget.LinearLayout.setChildFrame (LinearLayout.java: 1743) в android.widget.LinearLayout.layoutVertical (LinearLayout.java:1586) в android.widget.LinearLayout.onLayout (LinearLayout.java:1495) в android.view.View.layout (View.java:16645)на android.view.ViewGroup.layout (ViewGroup.java:5471) на android.widget.FrameLayout.layoutChildren (FrameLayout.java:336) на android.widget.FrameLayout.onLayout (FrameLayout.java:273) на com.android.internal.policy.PhoneWindow $ DecorView.onLayout (PhoneWindow.java:2694) на android.view.View.layout (View.java:16645) на android.view.ViewGroup.layout (ViewGroup.java:5471) на android.view.ViewRootImpl.performLayout (ViewRootImpl.java: 2171) в android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:1931) в android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1107) в android.view.ViewRootImpl $ TraversalRunnable.ot.Ivl ()на android.view.Choreographer $ CallbackRecord.run (Choreographer.java:858) на android.view.Choreographer.doCallbacks (Choreographer.java:670) на android.view.Choreographer.doFrame (Choreographer.java:606 at)view.Choreographer $ FrameDisplayEventReceiver.run (Choreographer.java:844) на android.os.Handler.handleCallback (Handler.java:739) на android.os.Handler.dispatchMessage (Handler.java:95) на android.os.Looper.loop (Looper.java:148) на android.app.ActivityThread.main (Acti