web-dev-qa-db-fra.com

Erreur: l'attribut "thème" a déjà été défini

J'utilise Android studio pour créer une application. J'utilise les dépendances suivantes:

  1. services de jeux: compile 'com.google.Android.gms:play-services:5.2.08'
  2. combat d'application v7: compile 'com.Android.support:appcompat-v7:21.0.0'
  3. soutenir Cardview: compile 'com.Android.support:cardview-v7:21.0.0'
  4. prise en charge de la vue Recycler: compile 'com.Android.support:recyclerview-v7:21.0.0'

Je reçois l'erreur suivante lors de la création de mon application:

app/build/intermediates/exploded-aar/com.google.Android.gms/play-services/5.2.08/res/values/wallet_attrs.xml
    Error:Attribute "theme" has already been defined

Code Styles.xml

<resources>

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

</resources>

Code wallet_attrs.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2014 Google Inc. All Rights Reserved. -->
<resources>
    <!-- Attributes for the WalletFragment &lt;fragment&gt; tag -->
    <declare-styleable name="WalletFragmentOptions">
        <!-- Theme to be used for the Wallet selector -->
        <attr name="theme" format="enum">
            <enum name="holo_dark" value="0"/>
            <enum name="holo_light" value="1"/>
        </attr>
        <!-- Google Wallet environment to use -->
        <attr name="environment" format="enum">
            <enum name="production" value="1"/>
            <enum name="sandbox" value="0"/>
            <enum name="strict_sandbox" value="2"/>
        </attr>
        <!-- A style resource specifing attributes to customize the look and feel of WalletFragment -->
        <attr name="fragmentStyle" format="reference"/>
        <!-- Fragment mode -->
        <attr name="fragmentMode" format="enum">
            <enum name="buyButton" value="1"/>
            <enum name="selectionDetails" value="2"/>
        </attr>
    </declare-styleable>

    <!-- Attributes that may be specified in a style resource to customize the look and feel of
         WalletFragment -->
    <declare-styleable name="WalletFragmentStyle">
        <!-- Height of the buy button. This includes an 8dp padding (4dp on each side) used for
             pressed and focused states of the button. The value can be a specific height, e.g.
             "48dp", or special values "match_parent" and "wrap_content". -->
        <attr name="buyButtonHeight" format="dimension">
            <enum name="match_parent" value="-1" />
            <enum name="wrap_content" value="-2" />
        </attr>
        <!-- Width of the buy button. This includes an 8dp padding (4dp on each side) used for
             pressed and focused states of the button. The value can be a specific width, e.g.
             "300dp", or special values "match_parent" and "wrap_content". -->
        <attr name="buyButtonWidth" format="dimension">
            <enum name="match_parent" value="-1" />
            <enum name="wrap_content" value="-2" />
        </attr>
        <!-- Text on the buy button. Must be one of "buy_with_google", "buy_now" and "book_now" -->
        <attr name="buyButtonText" format="enum">
            <enum name="buy_with_google" value="1"/>
            <enum name="buy_now" value="2"/>
            <enum name="book_now" value="3"/>
        </attr>
        <!-- Appearance of the buy button. Must be one of "classic", "grayscale" and "monochrome" -->
        <attr name="buyButtonAppearance" format="enum">
            <enum name="classic" value="1"/>
            <enum name="grayscale" value="2"/>
            <enum name="monochrome" value="3"/>
        </attr>
        <!-- TextAppearance for masked wallet details -->
        <attr name="maskedWalletDetailsTextAppearance" format="reference"/>
        <!-- TextAppearance for headers describing masked wallet details -->
        <attr name="maskedWalletDetailsHeaderTextAppearance" format="reference"/>
        <!-- Masked wallet details background -->
        <attr name="maskedWalletDetailsBackground" format="reference|color"/>
        <!-- TextAppearance for the "Change" button in masked wallet details view -->
        <attr name="maskedWalletDetailsButtonTextAppearance" format="reference"/>
        <!-- "Change" button background in masked wallet details view -->
        <attr name="maskedWalletDetailsButtonBackground" format="reference|color"/>
        <!-- Color of the Google Wallet logo text in masked wallet details view -->
        <attr name="maskedWalletDetailsLogoTextColor" format="color"/>
        <!-- Type of the wallet logo image in masked wallet details view -->
        <attr name="maskedWalletDetailsLogoImageType" format="enum">
            <enum name="classic" value="1"/>
            <enum name="monochrome" value="2"/>
        </attr>
    </declare-styleable>
</resources>
22
ash1103

il suffit d'utiliser la dernière (21)
appCompat et
bibliothèque des services google play

Par exemple:

compile 'com.Android.support:support-v4:21.0.0'
compile 'com.Android.support:appcompat-v7:21.0.0'
compile 'com.Android.support:recyclerview-v7:21.0.0' 
compile 'com.Android.support:cardview-v7:21.0.0'
compile 'com.google.Android.gms:play-services:6.1.11'

alors tout fonctionne :)

41
cV2

Vérifiez simplement si vous avez un fichier nommé attrs.xml. Dans ce fichier, remplacez la ligne suivante

 <attr name="theme" format="reference" />

avec

 <attr name="apptheme" format="reference" />

Autrement dit, renommez le nom du thème. Maintenant, nettoyez le projet. Cela a résolu mon problème.

11
arunprakashpj

J'ai eu le même problème de développement dans Eclipse après la mise à jour du contenu via le gestionnaire du SDK.

J'ai dû supprimer complètement la bibliothèque des services Google Play de l'espace de travail, puis copier et importer la version mise à jour en suivant les instructions ici .

Aucune mise à jour des pots référencés ne m'a aidé - Seulement une nouvelle importation complète. Cela comprenait la mise à jour de l'importation Android-support-v7-appcompat.

2
brandall

Si vous souhaitez continuer à prendre en charge les anciennes versions Android (2.3.x, 3.xx, 4.0), utilisez une version modifiée de votre bibliothèque en supprimant les classes et les ressources de portefeuille (étant donné que vous n'avez pas besoin de portefeuille) fonctionnalité.) Cela évite ce problème d'attr "thème". J'utilise play-services-5.0.89.arr sans problème.

En particulier, supprimez com.google.Android.gms.wallet.* classes et wallet_*.xml ressources et vous avez terminé.

0
Emmanuel Harguindey