找不到与给定名称'@ style / Theme.Holo.Light.DarkActionBar'匹配的资源

时间:2013-08-22 02:37:45

标签: android

平台:4.3

API等级:18

的AndroidManifest.xml:

<uses-sdk
    android:minSdkVersion="18"
    android:targetSdkVersion="18" />

值-V14 \ styles.xml:

  <resources>

<!--
    Base application theme for API 14+. This theme completely replaces
    AppBaseTheme from BOTH res/values/styles.xml and
    res/values-v11/styles.xml on API 14+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
</style>

 <style name="CustomActionBarTheme"
       parent="@style/Theme.Holo.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<style name="MyActionBar"
       parent="@style/Widget.Holo.Light.ActionBar.Solid.Inverse">
    <item name="android:background">@drawable/actionbar_background</item>
</style>

我是一个Android新手。非常感谢!

7 个答案:

答案 0 :(得分:88)

这样做:

"android:style/Theme.Holo.Light.DarkActionBar"

你在风格之前错过了android关键字。这表示它是Android的内置风格。

答案 1 :(得分:14)

确保您已将项目属性(不是清单)中的目标API(与目标SDK不同)设置为至少4.0 / API 14。

答案 2 :(得分:9)

@android对我不起作用。当我使用android(没有@)时,它就像一个魅力。

示例:

<style name="CustomActionBarTheme"
       parent="android:style/Theme.Holo.Light.DarkActionBar">

答案 3 :(得分:3)

这里的新手教程中存在一个重大错误: http://developer.android.com/training/basics/actionbar/styling.html

这很重要,因为几乎不可能检测到新手的错误原因。

错误是本教程明确指出该教程对api level 11(Android 3.0)有效,而实际上这仅适用于主题Theme.Holo(没有进一步的扩展和变体)

但本教程使用主题Theme.holo.Light.DarkActionBar,它只是来自api level 14(Android 4.0)及以上版本的有效主题。

这只是这些教程中发现的错误的许多示例之一(在其他方面都很棒)。有人应该在本周末纠正这些错误,因为它们真的很贵,而且时间很烦人。如果有办法我可以将此信息发送给Android团队,那么请告诉我,我会这样做。但是,希望他们阅读Stackoverflow。 (让我建议:Android团队应该考虑让一些新手尝试所有教程作为他们有效的资格)。

我(和无数其他人)发现的另一个错误是,如果你严格遵循教程,appcombat后向合规模块真的不起作用。错误未知。我不得不放弃。

关于此主题中的错误,以下是教程文本中引用不匹配斜体的引用:

” 仅适用于 Android 3.0 及更高版本

仅支持 Android 3.0 及更高版本时,您可以像这样定义操作栏的背景:

    <resources>
        <!-- the theme applied to the application or activity -->
        <style name="CustomActionBarTheme"
        parent="@style/Theme.Holo.Light.DarkActionBar"> 

错误1:只有Theme.Holo可以与Android 3.0一起使用。因此,删除“Light.DarkActionBar等。

错误2:@ style / Theme.Holo“&gt;不起作用。有必要编写@android:style / Theme.Holo”&gt;以表明它是一个被引用的内置主题。 (有点奇怪,“内置”不是默认值,但需要说明吗?)

纠错的编译器建议是将api级别14定义为最小sdk。这不是最佳的,因为它会导致对Andreoid 3.0(api level 11)的不合规。因此,我只使用Theme.Holo,这似乎工作正常(虽然是一个新的发现)。

我正在使用支持Android的Netbeans。很好地工作。

答案 4 :(得分:1)

如果你使用android studio,这可能对你有用。

我遇到了类似的问题,我通过将默认C:\ Program Files(x86)\ Android \ android-studio \ sdk中的skd路径更改为C:\ Program Files(x86)\ Android \ android-来解决此问题sdk。

似乎问题来自编译器版本(gradle将其自动设置为sdk文件夹中可用的最高版本),该版本不支持此主题,并且因为android studio在其sdk文件夹中只有api 7 ,它给了我这个错误。

有关如何在Android Studio中更改Android sdk路径的详细信息:Android Studio - How to Change Android SDK Path

答案 5 :(得分:0)

此外,如果您尝试使用CustomActionBarTheme,请确保

<application android:theme="@style/CustomActionBarTheme" ... />
AndroidManifest.xml中的

不是

<application android:theme="@android:style/CustomActionBarTheme" ... />

答案 6 :(得分:0)

你可以改变这个  parent attribute =&#34; android:style / Theme.Holo.Light.DarkActionBar&#34;