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

时间:2015-06-07 11:33:19

标签: android android-studio android-theme android-styles android-compatibility

我的Android应用

目标AP I: 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主题允许我们在旧设备上使用更新的(比如说材料主题)。 我在API Level 22和API Level 15上运行这个应用程序,它工作正常

现在我将其更改为

<resources>

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

</resources>

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

此外,我试图让AppTheme的父母为Holo,Light等,所有这些都让App崩溃了,为什么,请解释一下?

所有这些最终都会导致App

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

为什么这些不起作用,Holo在15年被引入了吗?

我正在使用22,

你可以详细说明它们之间的区别 主题.....,BaseTheme ....,Android ..... themeName

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

2 个答案:

答案 0 :(得分:3)

抱歉,我发现了这个问题,我的活动是扩展AppCompatActivity而不是一般活动,我现在就知道了

答案 1 :(得分:0)

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