Android 错误:错误:找不到与给定名称匹配的资源:attr 'buttonBarButtonStyle'

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/11573947/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-20 08:05:50  来源:igfitidea点击:

error: Error: No resource found that matches the given name: attr 'buttonBarButtonStyle'

androidstylesthemes

提问by jerry

I write a theme in styles.xml file like below

我在styles.xml文件中写了一个主题,如下所示

<?xml version="1.0" encoding="utf-8"?>
<resources>
 <!-- Root styles that vary by API level -->
<style name="FrameworkRoot.Theme" parent="Theme.Sherlock.Light.DarkActionBar">
    <!-- API 11+ (compatibility) -->
    <item name="buttonBarStyle">@style/Compat.ButtonBar</item>
    <item name="buttonBarButtonStyle">@style/Compat.ButtonBarButton</item>
    <item name="indeterminateProgressStyle">@style/Compat.IndeterminateProgress</item>
    <!-- API 14+ (compatibility) -->
    <item name="listPreferredItemPaddingLeft">@dimen/compat_list_preferred_item_padding_left</item>
    <item name="listPreferredItemPaddingRight">@dimen/compat_list_preferred_item_padding_right</item>
    <item name="listPreferredItemHeightSmall">@dimen/compat_list_preferred_item_height_small</item>
</style>

but get the error: Error: No resource found that matches the given name: attr 'buttonBarStyle'.

但得到错误:错误:找不到与给定名称匹配的资源:attr 'buttonBarStyle'。

I get the code from the google io2012. Both mine and its' all base

我从谷歌 io2012 得到代码。我的和它的所有基地

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

I can compile the google io2012's source code but not mine. so strange. is anybody know why? or have the same question?

我可以编译 google io2012 的源代码,但不能编译我的。这么奇怪。有人知道为什么吗?或者有同样的问题?

采纳答案by Erol

buttonBarStyleis for versions 11 and above as you state in your SDK but you are using android:minSdkVersion="8". Isn't it supposed to work for android:minSdkVersion="11"?

buttonBarStyle适用于您在 SDK 中声明的版本 11 及更高版本,但您使用的是android:minSdkVersion="8". 不是应该为它工作android:minSdkVersion="11"吗?

回答by Alan

I had a similar problem... I have two projects in my Eclipse workspace, both based on the Android 4.2 jar. One has minSdkVersion="8" with targetSdkVersion="17" and its style references both the buttonBarStyleand buttonBarButtonStylenames just fine. The other project uses the same manifest settings and will not build due to the errors:

我有一个类似的问题......我的 Eclipse 工作区中有两个项目,它们都基于 Android 4.2 jar。一个有 minSdkVersion="8" 和 targetSdkVersion="17" 并且它的样式引用了buttonBarStylebuttonBarButtonStyle名称就好了。另一个项目使用相同的清单设置,并且由于错误而不会构建:

 No resource found that matches the given name: attr 'buttonBarStyle'.
 No resource found that matches the given name: attr 'buttonBarButtonStyle'.

When I saw @dead'scomment about needing an attrs.xmlfile, I checked and sure enough, the project that wouldn't compile was missing this file. I think the working project was generated using the Eclipse Android Application Project wizard, while the other was created manually.

当我看到@dead's关于需要一个attrs.xml文件的评论时,我检查了一下,果然,无法编译的项目缺少这个文件。我认为工作项目是使用 Eclipse Android 应用程序项目向导生成的,而另一个是手动创建的。

The contents of res/values/attrs.xml:

内容res/values/attrs.xml

<resources>

    <!--
         Declare custom theme attributes that allow changing which styles are
         used for button bars depending on the API level.
         ?android:attr/buttonBarStyle is new as of API 11 so this is
         necessary to support previous API levels.
    -->
    <declare-styleable name="ButtonBarContainerTheme">
        <attr name="buttonBarStyle" format="reference" />
        <attr name="buttonBarButtonStyle" format="reference" />
    </declare-styleable>

</resources>

The contents of res/values/colors.xml:

的内容 res/values/colors.xml:

<resources>

    <color name="black_overlay">#66000000</color>

</resources>

And the three style files:

以及三个样式文件:

1) res/values/styles.xml

1) res/values/styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <!--
        Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
    -->

    <style name="AppBaseTheme" parent="android:Theme.Light">
        <!--
            Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.
        -->
    </style>

    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <!-- All customizations that are NOT specific to a particular API-level 
             can go here. -->
    </style>

    <style name="ButtonBarButton" />

    <style name="ButtonBar">
        <item name="android:paddingLeft">2dp</item>
        <item name="android:paddingTop">5dp</item>
        <item name="android:paddingRight">2dp</item>
        <item name="android:paddingBottom">0dp</item>
        <item name="android:background">@android:drawable/bottom_bar</item>
    </style>

    <style name="FullscreenTheme" parent="android:Theme.NoTitleBar">
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowBackground">@null</item> 
        <item name="buttonBarStyle">@style/ButtonBar</item>
        <item name="buttonBarButtonStyle">@style/ButtonBarButton</item>
    </style>

    <style name="ContentText">
        <item name="android:textColor">#0000ff</item>
        <item name="android:textSize">50sp</item>
        <item name="android:textStyle">bold</item>
    </style>

</resources>

2) res/values-v11/styles.xml

2) res/values-v11/styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <!--
        Base application theme for API 11+. This theme completely replaces
        AppBaseTheme from res/values/styles.xml on API 11+ devices.
    -->
    <style name="AppBaseTheme" parent="android:Theme.Holo.Light">
        <!-- API 11 theme customizations can go here. -->
    </style>

    <style name="FullscreenActionBarStyle" parent="android:Widget.Holo.ActionBar">
        <item name="android:background">@color/black_overlay</item>
    </style>

    <style name="FullscreenTheme" parent="android:Theme.Holo">
        <item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item>
        <item name="android:windowActionBarOverlay">true</item>
        <item name="android:windowBackground">@null</item>
        <item name="buttonBarStyle">?android:attr/buttonBarStyle</item>
        <item name="buttonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
    </style>

</resources>

3) res/values-v14/styles.xml

3) res/values-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.DarkActionBar">
        <!-- API 14 theme customizations can go here. -->
    </style>

</resources>

回答by Sharan

Refer the below link. Add the values which are used in your code and delete the rest . Hope it helps you.

请参考以下链接。添加代码中使用的值并删除其余的值。希望对你有帮助。

https://android.googlesource.com/platform/frameworks/base/+/2888524e03896831f487e5dee63f18f1c33c0115/core/res/res/values/attrs.xml

https://android.googlesource.com/platform/frameworks/base/+/2888524e03896831f487e5dee63f18f1c33c0115/core/res/res/values/attrs.xml

回答by lifelogger

Make sure you have included the AppCompat . It is a library project. You need to reference the library project in your android project.

确保您已包含 AppCompat 。这是一个图书馆项目。您需要在您的 android 项目中引用库项目。

https://developer.android.com/tools/support-library/setup.html

https://developer.android.com/tools/support-library/setup.html

Check the topic Adding libraries with resources.

检查主题添加带有资源的库。

回答by Reza Hamzehei

Had the same problem as yours:

遇到和你一样的问题:

my build.gradlefile:

我的build.gradle文件:

android {
compileSdkVersion 25
buildToolsVersion "27.0.1"
defaultConfig {
    applicationId "com.whatever"
    minSdkVersion 15
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}}

what I did in my Values folder added a attrs.XMLfile, with this codes in it:

我在 Values 文件夹中所做的添加了一个attrs.XML文件,其中包含以下代码:

<declare-styleable name="ButtonBarContainerTheme">
    <attr name="metaButtonBarStyle" format="reference" />
    <attr name="metaButtonBarButtonStyle" format="reference" />
</declare-styleable>

now I see no complains!

现在我看不到任何抱怨!

回答by Zeeshan Zulfiqar

I was getting same error....deleted the folders at

我遇到了同样的错误......删除了文件夹

C:\Users\.android\build-cache\Hash Number of Folders E.g. 4eaccf0d162ec009b115c7e0ff4f542f8d2a663b\

C:\Users\.android\build-cache\Hash 文件夹数 例如 4eaccf0d162ec009b115c7e0ff4f542f8d2a663b\

and it worked like a charm....

它就像一个魅力......