web-dev-qa-db-fra.com

error: Erreur: Aucune ressource trouvée correspondant au nom donné: attr 'buttonBarButtonStyle'

J'écris un thème dans le fichier styles.xml comme ci-dessous

<?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>

mais obtenez l'erreur: Erreur: Aucune ressource trouvée correspondant au nom donné: attr 'buttonBarStyle'.

J'obtiens le code du google io2012. Le mien et sa base

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

Je peux compiler le code source de google io2012 mais pas le mien. si étrange. est-ce que quelqu'un sait pourquoi? ou avez la même question?

16
jerry

buttonBarStyle est pour les versions 11 et supérieures comme vous l'indiquez dans votre SDK mais vous utilisez Android:minSdkVersion="8". N'est-il pas censé fonctionner pour Android:minSdkVersion="11"?

11
Erol

J'ai eu un problème similaire ... J'ai deux projets dans mon espace de travail Eclipse, tous deux basés sur le pot Android 4.2. L'un a minSdkVersion = "8" avec targetSdkVersion = "17" et son style fait bien référence aux noms buttonBarStyle et buttonBarButtonStyle. L'autre projet utilise les mêmes paramètres de manifeste et ne sera pas construit en raison des erreurs:

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

Quand j'ai vu @dead's commentaire sur la nécessité d'un attrs.xml fichier, j'ai vérifié et bien sûr, le projet qui ne compilerait pas manquait ce fichier. Je pense que le projet de travail a été généré à l'aide de l'assistant Eclipse Android Application Project, tandis que l'autre a été créé manuellement.

Le contenu de 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>

Le contenu de res/values/colors.xml:

<resources>

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

</resources>

Et les trois fichiers de style:

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

<?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

<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>
16
Alan

Reportez-vous au lien ci-dessous. Ajoutez les valeurs utilisées dans votre code et supprimez le reste. J'espère que cela vous aide.

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

1
Sharan

J'obtenais la même erreur .... supprimé les dossiers à

C:\Users\.Android\build-cache\Hash Nombre de dossiers Par exemple. 4eaccf0d162ec009b115c7e0ff4f542f8d2a663b \

et ça a fonctionné comme un charme....

0
Zeeshan Zulfiqar

Eu le même problème que le vôtre:

mon build.gradlefichier:

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'
    }
}}

ce que j'ai fait dans mon dossier Valeurs a ajouté un attrs.XML fichier, avec ces codes dedans:

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

maintenant je ne vois aucune plainte!

0
Reza Hamzehei

Assurez-vous d'avoir inclus l'AppCompat. Il s'agit d'un projet de bibliothèque. Vous devez référencer le projet de bibliothèque dans votre projet Android.

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

Consultez la rubrique Ajout de bibliothèques avec des ressources.

0
lifelogger