Android:java.lang.IllegalStateException:您需要在此活动中使用Theme.AppCompat主题(或后代)

时间:2015-02-15 20:29:26

标签: android android-appcompat

由于此异常,我仍然收到崩溃报告

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

我搜索过它,仍然无法弄清楚如何解决这个问题。

我使用Theme.AppCompat.Light作为基础AppTheme。这是我的style.xml

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/toolbar</item>
    <item name="colorPrimaryDark">@color/toolbar_dark</item>
    <item name="colorAccent">@color/accent</item>
    <item name="android:windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="actionOverflowButtonStyle">@style/OverFlow</item>
    <item name="searchViewStyle">@style/ActionBarSearchView</item>
    <item name="colorControlActivated">@color/switch_activated</item>
    <item name="colorSwitchThumbNormal">@color/switch_normal</item>
    <item name="android:colorForeground">@color/switch_track</item>
</style>

我在values文件夹

中只有1个style.xml

我在我的应用程序中使用了崩解剂,我只是从某些设备上遇到了这个问题,但这真让我烦恼。

有没有人知道解决这个问题?

我已经完成了以下两项工作,但仍然收到了崩溃报告。

1 个答案:

答案 0 :(得分:2)

您遇到此问题是因为您从Activity派生了一个或多个ActionBarActivity类。您需要从Activity OR 派生,您需要为Theme.Appcompat使用ActionBar样式之一。并确保在清单中的所有android:theme声明中指定了正确的<activity ... />属性。

修改

android:theme="@style/AppTheme"添加到应用清单中的MainActivity声明中。并在parent="Theme.AppCompat.Light"中将parent="@style/Theme.AppCompat.Light"更改为res/theme.xml