Error inflating class Button

Android Studio
アプリを登録しようとしてGoogle Play Consoleに登録したらリリース前レポートでエラーが出ました。内容は
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gmail.san58gong.mywhiteboard002/com.gmail.san58gong.mywhiteboard002.ListActivity}: android.view.InflateException: Binary XML file line #29 in com.gmail.san58gong.mywhiteboard002:layout/activity_list: Binary XML file line #29 in com.gmail.san58gong.mywhiteboard002:layout/activity_list: Error inflating class Button

layoutのButtonが原因のようです。詳細レポートを見ると

      ----- 省略 -----
com.gmail.san58gong.mywhiteboard002:layout/activity_list: Error inflating class Button
Caused by: android.view.InflateException: Binary XML file line #29 in com.gmail.san58gong.mywhiteboard002:layout/activity_list: Error inflating class Button
Caused by: java.lang.UnsupportedOperationException: Can't convert to ComplexColor: type=0x1
      ----- 省略 -----

Colorの問題のようです。レイアウトファイルは

    <Button
        android:id="@+id/showButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:backgroundTint="@color/material_dynamic_neutral80"
        android:text="@string/add_text"
        android:textColor="@color/black"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

のようにしていました。ボタンの色を灰色(material_dynamic_neutral80)にしています。実機のOppo Reno5A(Android12)やエミュレータのPixel6Pro(Android13)では問題なく動作していました。エラーレポートが出たので古いHuawei P20Liteを取り出して試してみるとクラッシュしまいます。設定しているmaterial_dynamic_neutral80が新しいAPIにしか対応していないようです。

android:backgroundTint=”@color/material_dynamic_neutral80″の設定をレイアウトファイルから全て無くしたら、Huawei P20Liteでもちゃんと動作しました。

レポートでエラーになった機種は

google Pixel 5  Android 11(SDK 30)
samsung SM-G981U1 Android 10(SDK 29)
Google Pixel 2 (仮想)Android 9(SDK 28)

なので、material_dynamic_neutral80はAndroid 12以降しか使えないようですね。

コメント

タイトルとURLをコピーしました