Spinner - надувать исключение при использовании AppCompat

Я реализовал Android-приложение для чтения книг. В моем приложении есть два режима - день и ночь.

Для режима day я использую тему, родительский элемент которой установлен на @style/Theme.AppCompat.Light.NoActionBar. Для режима ночь родителем является @style/Theme.AppCompat.NoActionBar.

В первом режиме (день) все работает нормально. Но возникает проблема, когда пользователь меняет режим на ночь. У меня проблема с Spinner, который находится в моем фрагменте. Сразу после смены режима на ночь я вижу следующее исключение:

java.lang.RuntimeException: Unable to start activity ComponentInfo{cz.company.media/cz.comapy.reader.activity.reader.ReadingActivity}: android.view.InflateException: Binary XML file line #19: Error inflating class <unknown>
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3119)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3218)
     at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:5111)
     at android.app.ActivityThread.access$1100(ActivityThread.java:198)
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1682)
     at android.os.Handler.dispatchMessage(Handler.java:102)
     at android.os.Looper.loop(Looper.java:145)
     at android.app.ActivityThread.main(ActivityThread.java:6837)
     at java.lang.reflect.Method.invoke(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:372)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
  Caused by: android.view.InflateException: Binary XML file line #19: Error inflating class <unknown>
     at android.view.LayoutInflater.createView(LayoutInflater.java:640)
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:750)
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
     at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
     at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
     at android.view.LayoutInflater.inflate(LayoutInflater.java:366)

Я обнаружил, что в моем макете в строке 19 есть Spinner. Я ориентируюсь на SDK версии 22. Все мои действия происходят из AppCompatActivity, а все мои диалоги — из AppCompatDialogFragment. Я также пытался изменить Spinner на AppCompatSpinner, но это не дало результата.

И очень странно, что у меня это произошло только на аппарате Samsung Galaxy S6 с Android 5.1.1.

Я протестировал его на некоторых других устройствах, таких как Nexus 5, Samsung Galaxy S4, Motorola Xoom, планшет Xperia Z2, и он работает абсолютно нормально.

У кого-нибудь есть идея, что может быть не так?

ОБНОВЛЕНИЕ

В строке 19 в моем файле xml указано следующее:

<android.support.v7.widget.AppCompatSpinner [this is line 19]
        android:id="@+id/spinner_display_settings_motif"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/display_setting_motif_types"/>

Я также пытался использовать классический Spinner, но это то же самое.


person PetrS    schedule 17.12.2015    source источник
comment
Сам столкнулся со многими проблемами с темной темой по умолчанию, пробовали ли вы android:theme=@style/ThemeOverlay.AppCompat.Dark ?   -  person Markus Rubey    schedule 17.12.2015
comment
@MarkusRubey Я использую панель инструментов, поэтому полагаю, что не могу использовать эту тему.   -  person PetrS    schedule 19.12.2015
comment
Если ваша активность распространяется конкретно на ActionBarActivity, а тема предназначена для действий без панели действий, это может привести к сбою. Часто, если что-то отсутствует или отсутствует из-за смены темы, может произойти сбой. AppCompatActivity устарела, поэтому, если тема поддерживает только новую.   -  person Eae    schedule 21.12.2015
comment
Что находится в строке 19 XML?   -  person Eae    schedule 21.12.2015
comment
@Sepoto Посмотрите мой обновленный вопрос, пожалуйста. Моя активность простирается от AppCompatActivity, а ActionBar нет, потому что я использую Toolbar.   -  person PetrS    schedule 22.12.2015
comment
Существует пример того, как применить тему совместимости v7 stackoverflow.com/questions/31499657/. Я не уверен, что у меня есть прямое решение   -  person Eae    schedule 22.12.2015
comment
у меня также было такое исключение, если конструктор действия или счетчик, если элемент управления имеет класс, должен добавить к нему параметр attributeset   -  person Eae    schedule 23.12.2015


Ответы (1)


Попробуйте проверить, если у вас нет в вашем стиле/теме:

<item name="android:src">something</item>

Это может вызвать такого рода проблемы.

person Warlock    schedule 06.01.2016