AppCompat 不支持当前主题



我的应用程序在Android N上运行良好,但在Android M上setContentView(R.layout.activity_main)崩溃:

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

奇怪的是,我什至没有编辑与我的应用程序主题有关的任何内容,因此此错误非常奇怪:

款式.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.MainActivity}: java.lang.IllegalArgumentException:AppCompat 不支持 当前主题功能: { 窗口操作栏: 假, windowActionBarOverlay: false, android:windowIsFloating: false, 窗口操作模式覆盖:真,窗口无标题:假 } 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325( 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387( at android.app.ActivityThread.access$800(ActivityThread.java:151( 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303( at android.os.Handler.dispatchMessage(Handler.java:102( at android.os.Looper.loop(Looper.java:135( at android.app.ActivityThread.main(ActivityThread.java:5254( at java.lang.reflect.Method.invoke(Native Method( at java.lang.reflect.Method.invoke(Method.java:372( 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903( at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698(原因:java.lang.IllegalArgumentException: AppCompat not 支持当前主题功能:{窗口操作栏:假, windowActionBarOverlay: false, android:windowIsFloating: false, windowActionModeOverlay: true, windowNoTitle: false }at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:474( 在 android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:328( 在 android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:289( 在 android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140( 在 com.curlybraceapps.ruchir.rescuer.MainActivity.onCreate(MainActivity.java:152( at android.app.Activity.performCreate(Activity.java:6033( 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106( 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278( 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387( at android.app.ActivityThread.access$800(ActivityThread.java:151( 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303( at android.os.Handler.dispatchMessage(Handler.java:102( at android.os.Looper.loop(Looper.java:135( at android.app.ActivityThread.main(ActivityThread.java:5254( at java.lang.reflect.Method.invoke(Native Method( at java.lang.reflect.Method.invoke(Method.java:372( 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903( at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698(

为什么这个问题突然发生,即使我根本没有改变与我的主题有关的任何内容?

更改父主题对我有用

<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>

遇到同样的问题,所以我像这样更新了我的风格并且它有效。

<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>

最新更新