应用程序在更改样式下的主题时崩溃

App crashes on changing theme under styles

我的 Android 应用程序:

目标API:22

分钟API:15

设备 运行 在 :API 级别 22

我不理解整个主题概念,

在我的 manifest.xml 中,我设置了 android:theme="@style/AppTheme"

所有活动都使用这个主题

现在我的理解是他们都使用名为 AppTheme 的主题,我现在可以通过扩展 styles.xml

中的其他主题来定义它

在我的styles.xml

我有这个

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
    </style>

</resources>

我的理解是 AppCompat 主题允许我们在旧设备上也使用更新的(比如 material 主题)。 我 运行 这个应用程序在 API 级别 22 和 API 级别 15 上,它工作正常

现在当我把它改成

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="android:Theme.Material">
        <!-- Customize your theme here. -->
    </style>

</resources>

它给出了一个警告,说这个主题只能在 API 21 或更高版本上使用,这是正确的,现在当我忽略警告并且 运行 它在 API 22 上它崩溃了。 为什么?

我也试过把AppTheme的parent设置为Holo, Light等,都导致App崩溃,为什么,解释一下?

所有这些最终导致应用程序崩溃

<style name="AppTheme" parent="android:Theme.Translucent">
   <style name="AppTheme" parent="android:Theme.Holo">

为什么这些不起作用,Holo 是在 15 中引入的吗?

我正在使用 22 ,

请您详细说明两者之间的区别 主题......., BaseTheme.....,Android..... themeName

我正在 运行ning android studio 1.3 并使用最新版本(稳定版)的 SDK、SDK 构建和 SDK 平台工具。 谢谢!

抱歉,我发现了问题,我的 activity 正在扩展 AppCompatActivity 而不是一般的 activity,我现在明白了

在使用自定义样式时,您必须照顾好您提供的父项。尝试更改父主题,它可能会解决您的问题。