Android: IllegalStateException: невозможно создать слой в MessageQueue.nativePollOnce (MessageQueue.java) - PullRequest
0 голосов
/ 01 июня 2018

У меня были проблемы с этой ошибкой целую вечность.

Fatal Exception: java.lang.IllegalStateException: Unable to create layer for MatchCard_
   at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
   at android.os.MessageQueue.next(MessageQueue.java:143)
   at android.os.Looper.loop(Looper.java:130)
   at android.app.ActivityThread.main(ActivityThread.java:5942)
   at java.lang.reflect.Method.invoke(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:372)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)

Это не всегда так, но чаще всего.Представление построено так:

<?xml version="1.0" encoding="utf-8"?>
<com.soudfa.views.RoundedView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/cardView"
android:layout_width="match_parent"
android:layout_height="@integer/match_card_height"
android:layout_gravity="@integer/match_card_card_gravity"
android:transitionGroup="true"
android:layoutDirection="locale"
app:cardPreventCornerOverlap="@bool/match_card_prevent_corner_overlap"
app:corner_radius="@dimen/corner_radius"
app:cardElevation="0dp">

<com.soudfa.fragments.match.views.CustomRecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="@integer/match_card_height"
    android:layout_gravity="@integer/match_card_card_gravity"
    android:clickable="true"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:clipToPadding="false"
    android:scrollbars="@integer/match_card_scroll_bar"
    android:background="@color/brightest"
    android:overScrollMode="never"/>

<FrameLayout
    android:id="@+id/leftActionImageContainer"
    android:layout_width="@dimen/match_card_decision_icon_size_start"
    android:layout_height="@dimen/match_card_decision_icon_size_start"
    android:layout_centerVertical="true"
    android:layout_alignParentStart="true"
    android:alpha="0"
    android:background="@drawable/shape_match_decision_icon_like"
    android:elevation="@dimen/general_elevation"
    android:padding="@dimen/match_card_decision_icon_padding"
    android:scaleType="fitCenter"
    android:scaleX="0"
    android:scaleY="0">

    <ImageView
        android:id="@+id/leftActionImage"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:tint="@color/custom_match_card_action_positive"/>

</FrameLayout>

<FrameLayout
    android:id="@+id/rightActionImageContainer"
    android:layout_width="@dimen/match_card_decision_icon_size_start"
    android:layout_height="@dimen/match_card_decision_icon_size_start"
    android:layout_centerVertical="true"
    android:layout_alignParentEnd="true"
    android:alpha="0"
    android:background="@drawable/shape_match_decision_icon_reject"
    android:elevation="@dimen/general_elevation"
    android:padding="@dimen/match_card_decision_icon_padding"
    android:scaleType="fitCenter"
    android:scaleX="0"
    android:scaleY="0">

    <ImageView
        android:id="@+id/rightActionImage"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:tint="@color/custom_match_card_action_negative"/>

</FrameLayout>

<FrameLayout
    android:id="@+id/shadow"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="false"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:background="#000"
    android:alpha="0"/>

RoundedView - это просто класс, расширяющий RelativeLayout и использующий canvas для обрезания пути по dispatchDraw.

Как видно на Fabric Похоже, что проблема чаще возникает на Samsung с версией Android 5.x.

У кого-нибудь есть опыт с этой проблемой или какие-либо предложения по ее устранению?

Заранее спасибо:)

...