22

Ich benutze Android Studio für die Erstellung von Anwendungen. Ich verwende dieses folgende Abhängigkeiten:Fehler: Attribut "Thema" wurde bereits definiert

  1. Play-Dienste: compile 'com.google.android.gms:play-services:5.2.08'
  2. App Kampf v7: compile 'com.android.support:appcompat-v7:21.0.0'
  3. Unterstützung Cardview: compile 'com.android.support:cardview-v7:21.0.0'
  4. Unterstützung Recycler Ansicht: compile 'com.android.support:recyclerview-v7:21.0.0'

Ich erhalte folgende Fehler beim Erstellen meiner App:

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> 
+0

PLZ den Code Ihrer wallet_attrs.xml-Datei und Ihre styles.xml, die innerhalb Werte Ordner ist –

+0

bearbeitet die Frage oben – ashwin1103

+5

versuchen, Ihre Google Play-Dienste Abhängigkeit zu diesem 'com.google.android.gms: play-services : 6.1. + ' –

Antwort

40

verwenden nur neueste (21)
AppCompat und
Google Play-Services-Bibliothek

Zum Beispiel:

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' 

dann überprüfen alles funktioniert :)

+0

Entschuldigung Mann :) richtig, Anpassung Antwort – cV2

+0

Es hat nicht funktioniert für mich. – KinGPinG

+0

Ich habe das gleiche Problem bei anderen Bibliotheken, beide von declare-styleable ist nicht dupliziert, Version von Gradle-Plugin/Build-Tool sind 1.0.0/20.0.0 und 0.9 +/19.0.0 –

-3

Dank Hirak, wie Sie die genannten Fehler mit Abhängigkeit war. löste es folgende Versionen von Bibliothek:

compile 'com.android.support:appcompat-v7:20.0.0' 
compile 'com.google.android.gms:play-services:4.+' 
compile 'com.android.support:cardview-v7:21.0.0' 
compile 'com.android.support:recyclerview-v7:21.0.0' 
+2

Das ist eine sehr alte Version von Google Play Services –

+0

Ja ... aber es begann zu arbeiten ... Ich bekomme Fehler, wenn ich die neueste Version von allen verwenden diese Bibliotheken. – ashwin1103

+0

Ich habe Sie nicht abgelehnt, aber Sie sollten Folgendes verwenden: compile 'com.google.android.gms: play-services: 6.1.11'. Warum beantworten Sie in diesem Fall Ihre eigene Frage? –

2

ich in Eclipse Entwicklung nach der Aktualisierung von Inhalten über den SDK-Manager hatte das gleiche Problem.

Ich musste die Google Play Services-Bibliothek vollständig aus dem Arbeitsbereich entfernen und dann die aktualisierte Version following the instructions here kopieren und importieren.

Keine Aktualisierung der referenzierten Gläser half mir - Nur ein voller neuer Import. Dies beinhaltete die Aktualisierung des android-support-v7-appcompat-Imports.

11

Just, ob Sie eine Datei namens attrs.xml haben. In dieser Datei die folgende Zeile ersetzen

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

mit

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

Das heißt, benennen Sie die Themennamen. Reinigen Sie jetzt das Projekt. Das hat mein Problem gelöst.

+0

Umbenannt es als was? – Bono

+0

Ich habe den Namen 'theme' in 'apptheme' umbenannt – arunprakashpj

+1

diese Lösung hat mir sehr gut geholfen! – GFPF

0

Wenn Sie ältere Android-Versionen (2.3.x, 3.xx, 4.0) weiter unterstützen möchten, verwenden Sie eine geänderte Version Ihrer Bibliothek, um Mappenklassen und Ressourcen zu entfernen (vorausgesetzt, Sie benötigen keine Brieftaschenfunktionalität) Dieses "Thema" ist ein Problem. Ich verwende play-services-5.0.89.arr ohne Problem.

Insbesondere entfernen Sie com.google.android.gms.wallet.* Klassen und wallet_*.xml Ressourcen und Sie sind fertig.

Verwandte Themen