Класс SnackbarContentLayout не найден после перехода на AndroidX - PullRequest
0 голосов
/ 01 апреля 2020

После перехода на AndroidX мое приложение падает после вызова метода Snackbar.make () . Ошибка выглядит так:

Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class android.support.design.internal.SnackbarContentLayout Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.design.internal.SnackbarContentLayout"

Странно, что внутренний Snackbar метод make () все еще пытается получить доступ к SnackbarContentLayout класс в старом пакете поддержки вместо нового материала. Пожалуйста, посоветуйте, что я делаю не так.

ОБНОВЛЕНИЕ

Наконец-то я нашел решение. В моем проекте есть пользовательский макет, который переопределяет Snackbar design_layout_snackbar_include, и у него был неправильный класс в root view tag:

<view
  xmlns:android="http://schemas.android.com/apk/res/android"
  class="android.support.design.internal.SnackbarContentLayout"
  android:theme="@style/ThemeOverlay.AppCompat.Dark"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:layout_gravity="bottom">

Я изменил его на com.google.android.material.snackbar.SnackbarContentLayout

1 Ответ

0 голосов
/ 01 апреля 2020

убедитесь, что ваш проект настроен для миграции старых пакетов на Androidx, включив его в файл gradle.properties:

android .useAndroidX = true
android .enableJetifier = true

...