studio - com.android.support:appcompat-v7 last version
Error: el atributo "tema" ya ha sido definido (5)
Gracias Hirak como mencionaste el error fue con la dependencia. Resuelto usando las siguientes versiones de la biblioteca:
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''
Estoy usando Android Studio para la construcción de aplicaciones. Estoy usando las siguientes dependencias:
- Servicios de juego:
compile ''com.google.android.gms:play-services:5.2.08''
- aplicación de combate v7:
compile ''com.android.support:appcompat-v7:21.0.0''
- soporte de Cardview:
compile ''com.android.support:cardview-v7:21.0.0''
- Admite la vista del reciclador:
compile ''com.android.support:recyclerview-v7:21.0.0''
Me aparece el siguiente error al crear mi aplicación:
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
Código Styles.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>
</resources>
Código wallet_attrs.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2014 Google Inc. All Rights Reserved. -->
<resources>
<!-- Attributes for the WalletFragment <fragment> 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>
Si desea seguir admitiendo versiones anteriores de Android (2.3.x, 3.xx, 4.0) use una versión modificada de su biblioteca eliminando clases y recursos de billetera (dado que no necesita la funcionalidad de billetera). Eso evita este "tema" problema attr Estoy usando play-services-5.0.89.arr
sin ningún problema.
En particular, elimine las clases com.google.android.gms.wallet.*
Y el wallet_*.xml
y listo.
Solo verifique si tiene un archivo llamado attrs.xml. En ese archivo reemplaza la siguiente línea
<attr name="theme" format="reference" />
con
<attr name="apptheme" format="reference" />
Es decir, renombrar el nombre del tema. Ahora limpia el proyecto. Esto solucionó mi problema.
Tuve el mismo problema al desarrollar en Eclipse después de actualizar el contenido a través del administrador de SDK.
Tuve que eliminar por completo la biblioteca de Google Play Services del área de trabajo y luego copiar e importar la versión actualizada siguiendo las instrucciones aquí .
No me ayudó la actualización de los frascos referenciados, solo una importación nueva. Esto incluía actualizar la importación de android-support-v7-appcompat.
solo usa el ultimo (21)
appCompat y
biblioteca de servicios de Google Play
Por ejemplo:
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''
entonces todo funciona :)