web-dev-qa-db-fra.com

Lollipop AppCompat-v7 21 - L'attribut "thème" a déjà été défini

Je souhaitais mettre à niveau mon projet pour prendre en charge Android Lollipop et API 21; j'ai donc changé la version d'AppCompat au niveau des dépendances en 21.0.0, Et mon SDK cible à 21.

Mais maintenant, lorsque j'essaie de synchroniser un projet avec des fichiers de gradation, cela me donne 102 errors qui n'existait pas auparavant:

1 erreur de "Attribute 'theme' has already defined" - donnée par mon fichier colors.XML

et 101 autres erreurs de "no resources found that matches the given name..." - la plupart d’entre elles sont matérielles - données par "build/intermediates/exploded-aar/com.Android.support/appcompat-v7/21.0.0/res/values-v11/values.XML".

Déjà mis à jour tous les outils SDK dans le logiciel SDK Android, Utilisation d'Android Studio 0.8.9 Beta.

Quelqu'un peut-il aider? Merci.

69
user3184899

J'ai eu le premier numéro aussi. Il peut être corrigé en mettant à jour la dépendance des services Google Play vers la version 6.1. +.

Dans Gradle (que j'espère utiliser), il s'agit de: Compiler 'com.google.Android.gms: play-services: 6.1. +'

En ce qui concerne le deuxième problème - comme l’ont dit les personnes dans les commentaires, vous devez vous assurer que TOUS les composants de votre installation de SDK sont à jour.

123
tilal6991

J'ai eu le même problème mais la mise à niveau vers les dernières versions n'a pas aidé.

Mais le message d'erreur Attribute “theme” has already been defined a été remplacé par Attribute “layout” has already been defined

Dans les modifications des services Google Play, j'ai trouvé ceci

  <declare-styleable name="WalletFragmentOptions">
         <!-- Theme to be used for the Wallet selector -->
-        <attr name="theme" format="enum">
+        <attr name="appTheme" format="enum">

Et c'est la clé.

Si vous avez dans votre attribut attr.xml theme ou layout ou peut-être autre chose - renommez-le. Il semble que la fusion ne puisse pas y faire face. 

17
Fedor Kazakov

Gradle dans le studio Android suggère la dernière version de com.google.Android.gms:play-services. Après avoir mis à jour la dernière version, le problème a été résolu.

compiler 'com.google.Android.gms:play-services:8.3.0'

2
Vikas

Après avoir ajouté une nouvelle activité à mon projet, il semble qu'Android Studio mette automatiquement à jour mes dépendances, après le début de l'erreur.

J'ai remplacé les dépendances suivantes par les dernières bibliothèques de compatibilité:

compile 'com.Android.support:support-v4:21.0.3'
compile 'com.Android.support:appcompat-v7:21.0.3'

à ceux que j'avais dans mon gradle.build avant que Studio l'édite sans me demander:

compile 'com.Android.support:support-v4:20.0.0'
compile 'com.Android.support:appcompat-v7:20.0.0'

Ensuite, laissez Studio effectuer une synchronisation et votre construction devrait fonctionner.

0
Benjamin Piette

Parfois, la bibliothèque que vous utilisez a cet attribut. J'utilisais Panneau coulissant vers le haut bibliothèque et j'ai eu l'erreur suivante pendant la construction. J'ai eu les éléments suivants dans mes bibliothèques de dépendance:

dependencies {
    compile 'com.Android.support:appcompat-v7:20.0.0'
    compile 'com.sothree.slidinguppanel:library:+'
    // ...
}

J'ai résolu mon problème en supprimant la bibliothèque coulissante :(

0
Hesam

Pour les utilisateurs d'Eclipse:

Parce que si vous avez suivi les recommandations d'installation de gps, vous n'en avez qu'une copie dans votre espace de travail qui ne sera pas mis à jour.

0
Murmel