AppCompat не поддерживает текущую тему

Мое приложение работает нормально на Android N, но падает на setContentView(R.layout.activity_main) на Android M:

 Caused by: java.lang.IllegalArgumentException: AppCompat does not support the current theme features: { windowActionBar: false, windowActionBarOverlay: false, android:windowIsFloating: false, windowActionModeOverlay: true, windowNoTitle: false }

Странно то, что я даже не редактировал ничего, что касалось темы моего приложения, и поэтому эта ошибка очень странная:

styles.xml:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>z
    </style>

    <style name="DialogStyle">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
        <item name="android:windowBackground">@color/textColorPrimary</item>
        <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
        <item name="android:colorBackgroundCacheHint">@null</item>
        <item name="android:textColorPrimary">@color/black</item>
    </style>

</resources>

Неустранимое исключение: основной Процесс: com.curlybraceapps.ruchir.rescuer, PID: 20394 java.lang.RuntimeException: Невозможно начать действие ComponentInfo{com.curlybraceapps.ruchir.rescuer/com.curlybraceapps.ruchir.rescuer.MavaActivity}: lang.IllegalArgumentException: AppCompat не поддерживает функции текущей темы: { windowActionBar: false, windowActionBarOverlay: false, android:windowIsFloating: false, windowActionModeOverlay: true, windowNoTitle: false } в android.app.ActivityThread.performLaunchAava: Activity()) в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) в android.app.ActivityThread.access$800(ActivityThread.java:151) в android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) в android.os.Handler.dispatchMessage(Handler.java:102) в android.os.Looper.loop(Looper.java:135) в android.app.ActivityThread.main(ActivityThread.java:5254) в java.lang.reflect.Method.invoke(собственный метод) в java.lang.reflect.Method.invoke(Method.java:372) в com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) в com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Причина : java.lang.IllegalArgumentException: AppCompat не поддерживает текущие функции темы: { windowActionBar: false, windowActionBarOverlay: false, android:windowIsFloating: false, windowActionModeOverlay: true, windowNoTitle: false } в android.support.v7.app.ApprempateDVelegateVelegateVject AppCompatDelegateImplV9.java:474) в android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:328) в android.support.v7.app.AppCompatDelegateImpat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) в com.curlybraceapps.ruchir.rescuer.MainActivity.onCreate(MainActivity.java:152) в android.app.Activity.performCreate(Activity.java:6033) на андроиде.app.Instrumentation.callActivityOnCreate(приборостроение n.java:1106) в android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) в android.app.ActivityThread.access $ 800 (ActivityThread.java: 151) на android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) на android.os.Handler.dispatchMessage(Handler.java:102) на android.os.Looper.loop(Looper.java:135) на android.app.ActivityThread.main(ActivityThread.java:5254) в java.lang.reflect.Method.invoke(собственный метод) в java.lang.reflect.Method.invoke(Method.java:372) в com.android. internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:903) в com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

Почему эта проблема возникает внезапно, хотя я вообще ничего не изменил в моей теме?

2 ответа

Смена родительской темы работала на меня

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
</style>

Два варианта.

Один, попробуйте очистить и перестроить проект.

Во-вторых, измените определения так, без "android":

<item name="windowActionBar">false</item>

<item name="windowNoTitle">true</item>

Возникает та же проблема, поэтому я обновил свой стиль вот так, и это сработало.

<style name="AppTheme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>
Другие вопросы по тегам