【问题标题】:AppCompat does not support the current theme features - nothing worksAppCompat 不支持当前的主题功能 - 没有任何效果
【发布时间】:2015-09-16 16:32:24
【问题描述】:

我正在尝试在我的项目中使用 MaterialDesign,但我一直收到此错误:

Caused by: java.lang.IllegalArgumentException: AppCompat does not support the current theme features: { windowActionBar: false, windowActionBarOverlay: false, android:windowIsFloating: false, windowActionModeOverlay: false, windowNoTitle: false }
        at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:371)
        at android.support.v7.app.AppCompatDelegateImplV7.initWindowDecorActionBar(AppCompatDelegateImplV7.java:173)
        at android.support.v7.app.AppCompatDelegateImplBase.getSupportActionBar(AppCompatDelegateImplBase.java:87)
        at android.support.v7.app.AppCompatDelegateImplV7.setSupportActionBar(AppCompatDelegateImplV7.java:197)
        at android.support.v7.app.AppCompatActivity.setSupportActionBar(AppCompatActivity.java:99)
        at de.memorian.playpal.MainActivity.afterInject(MainActivity.java:72)

我已经阅读了类似的问题,但每次都遇到同样的错误。

MainActivity.java:

@EActivity(R.layout.activity_main)
public class MainActivity extends AppCompatActivity {

@ViewById
protected Toolbar toolbar;

@AfterInject
public void afterInject() {
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
}
}

styles.xml:

<style name="AppTheme" parent="AppTheme.Base"/>

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

styles-v21.xml:

style name="AppTheme" parent="AppTheme.Base">
    <!-- enable window content transitions -->
    <item name="android:windowContentTransitions">true</item>
    <item name="android:windowAllowEnterTransitionOverlap">true</item>
    <item name="android:windowAllowReturnTransitionOverlap">true</item>
    <!-- specify shared element transitions -->
    <item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
    <item name="android:windowSharedElementExitTransition">@android:transition/move</item>
</style>

我尝试将父主题设置为 .NoActionBar 的任何派生,但仍然如此。我还尝试从 AndroidAnnotations 中删除所有代码,并使用setContentViewfindViewById(R.id.toolbar) 以常规方式执行此操作。唯一困扰我的是我将windowNoTitle 设置为true,但在日志中却显示为false

有什么帮助吗?

【问题讨论】:

标签: android


【解决方案1】:

变化:

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

到:

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

【讨论】:

  • 有什么区别
  • 在我的情况下,这与您的解释相反
【解决方案2】:

对于遇到此问题的其他人,我刚刚发现了问题: 显然存在另一个名为“AppTheme”的主题。我不知道为什么以及如何,但是更改我的主题名称解决了这个问题。

这是我的问题的答案。

【讨论】:

  • 为我工作——在我的情况下,我的项目正在工作,然后我引入了一个自定义视图,它开始像这样崩溃。更改名称解决了问题。我想在自定义视图的 gradle 导入中的某个地方有一个“AppTheme”的定义
  • parent="AppTheme" 更改为 parent="Theme.AppCompat.Light.NoActionBar" 后工作
【解决方案3】:

将它们添加到 AndroidManifest.xml 文件中的 Activity MainActivity 中

喜欢这个

        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/Theme.AppCompat.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

【讨论】:

    【解决方案4】:

    在theme.xml文件中,设置了

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

    为假。 将其更改为 true。

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

    如果你这样做了,那就这样做。

    【讨论】:

      【解决方案5】:

      以您的主要风格复制此代码:

      &lt;style name="Theme.MyTheme" parent="Theme.AppCompat.NoActionBar"&gt;

      【讨论】:

      • 为什么这是一个常见的答案?查看错误日志,它明确表示相反:“windowAcitonBar:false”支持。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-20
      • 1970-01-01
      • 2017-08-07
      • 2015-11-16
      • 2018-01-20
      • 2017-12-08
      • 2015-06-29
      相关资源
      最近更新 更多