【问题标题】:Android: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activityAndroid:java.lang.IllegalStateException:您需要在此活动中使用 Theme.AppCompat 主题(或后代)
【发布时间】:2015-02-15 20:29:25
【问题描述】:

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

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

我在我的应用程序中使用了 crashlytics,我只在某些设备上遇到了这个问题,但这真的让我很恼火。

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

我已完成以下两件事,但仍收到崩溃报告。

【问题讨论】:

  • 更改为parent="@style/Theme.AppCompat.Light"&gt; 并确保您已在AndroidManifest.xml 中将主题设置为@style/AppTheme"
  • 刚改了,有区别吗?
  • @user2341387:那么,这方面有什么进展吗?

标签: android android-appcompat


【解决方案1】:

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

编辑:

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

【讨论】:

  • 我只有 1 个 MainActivity 并且已经扩展了 ActionBarActivity。我已经检查并确保所有内容都正确写入。
  • 以上两件事都做了,看看能不能解决
  • @user2341387:你对这个答案还有疑问吗?
  • 是的,还有强制关闭报告
  • 但答案是正确的......它工作......这个错误必须是由于另一个原因......报告的错误是什么?
猜你喜欢
  • 2014-03-15
  • 2015-11-27
  • 2016-07-04
  • 2016-05-16
  • 2018-06-05
相关资源
最近更新 更多