41 votes

IDE "Cannot Resolve @style/Theme.Appcompat" lors de l'utilisation du thème de support de compatibilité v7

Ce n'est pas vraiment un gros problème, car mon projet se construit et s'exécute toujours correctement (en utilisant gradle), mais j'ai du mal à faire en sorte qu'Android Studio reconnaisse le thème de compatibilité de l'application publié dans le SDK API 18 (pour permettre la prise en charge de la barre d'action pour Android 2.1 et supérieur).

J'ai réussi à charger les bibliothèques de support, car la complétion de code est possible pour les classes ActionBar dans les fichiers java. Le problème est qu'Android studio affiche des erreurs en rouge pour les affectations à Theme.AppCompat.Light dans AndroidManifest.xml.

Existe-t-il un moyen d'activer la complétion de code pour les ressources de thème déclarées dans le manifeste à partir de bibliothèques externes dans Android Studio ?

Mise à jour de Voici mon <activity> de mon AndroidManifest :

<activity
    android:name="com.example.activities.MainActivity"
    android:label="@string/app_name"
    android:screenOrientation="portrait"
    android:theme="@style/Theme.AppCompat.Light" >

J'ai également essayé de définir le thème dans le bloc d'application :

<application
    android:allowBackup="true"
    android:icon="@drawable/main_final_ic"
    android:label="@string/app_name"
    android:logo="@drawable/main_final_enzo"
    android:theme="@style/Theme.AppCompat.Light" >

Là encore, ces deux éléments fonctionnent et se compilent sans problème, mais apparaissent en rouge avec des erreurs dans mon IDE. Je viens également de confirmer que les mêmes problèmes se produisent lorsque je lance mon projet dans Eclipse.

0 votes

Pouvez-vous poster votre fichier Manifest où vous avez défini le thème AppCompat ?

0 votes

@Sharj J'ai ajouté les parties de mon manifeste où les styles sont définis. Encore une fois, tout se compile bien, et remplacer les styles d'appcompat par mes styles personnalisés fonctionne bien avec l'autocomplétion.

0 votes

Hmmm, je suis presque sûr que Studio devrait récupérer les ressources des bibliothèques aar. Vous venez de l'ajouter comme compile dépendance de l'artefact dans le référentiel intégré, non ?

16voto

kev Points 911

J'ai eu le même problème. Il semble que le fichier jar de la V7 compile bien mais qu'il vous manque probablement la ressource xml nécessaire. Vous devez inclure manuellement le fichier 'Theme.xml' fourni avec le paquetage de la V7. Voici ce que j'ai fait pour résoudre ce problème.

Regardez sous : Ajouter des bibliothèques avec des ressources http://developer.Android.com/tools/support-library/setup.html

Les instructions fournies ici ne sont pas très claires car elles ne vous disent pas d'apporter des ressources. (peut-être un bug dans Android Studio ?)

Voici ce que j'ai fait :

  1. Mettez à jour votre SDK dans le gestionnaire et assurez-vous d'inclure "Android support repository" dans le fichier extra.
  2. Allez dans le SDK dans l'explorateur de fichiers (Finder sur mac) et repérez le dossier de l'extra ( ..\sdk\extras\android\support\v7\appcompat\res\values sur Windows). Quelque part là-dedans se trouvent un 'themes.xml' et un 'themes_base.xml'. Copiez ces deux fichiers.
  3. Dans votre projet, collez les fichiers dans le répertoire 'values'.
  4. faire une reconstruction et ça a fait l'affaire pour moi.

6 votes

Cela provoque des erreurs supplémentaires, car ces thèmes font eux-mêmes référence à d'autres entrées xml. De plus, je préfère ne pas avoir deux versions du même thème disponibles pour mon projet, si possible.

0 votes

J'ai ajouté une dernière étape et cela a fonctionné : 5. modifier styles.xml : <style name="AppBaseTheme" parent="Theme.Base.AppCompat.Light"></style> <style name="AppTheme" parent="Theme.Base.Light"> Merci kev tu es un génie ;)

1 votes

Dans mon cas, le projet compile bien, mais j'ai toujours ceci : cannot resolves symbole "Theme" : "@style/Theme.AppCompat.Light.DarkActionBar" Le thème est rouge, mais quand je bascule, ctrl+espace me suggère ceci : "Theme.AppCompat.Light.DarkActionBar" et ça compile aussi mais le thème est toujours en rouge...

4voto

Yuichi Araki Points 1154

15 votes

Je suis sur la version 0.8.1 et j'ai ce problème.

1 votes

Oui, je pense que c'est de retour !

0 votes

Je suis sur la 0.8.4 et le problème est toujours là.

3voto

Bram De Backer Points 76

N'ajoutez pas la bibliothèque au chemin de construction de Java, ajoutez la bibliothèque (en tant que projet) dans Paramètres>Androïde>Libraries>Ajouter une bibliothèque.

0 votes

C'est pour Eclipse, dans Android Studio c'est différent car il faut utiliser Gradle.

3voto

Luis Alberto Points 475

Je sais que j'ai répondu tardivement, mais cette réponse pourrait aider les futurs visiteurs.

  • Changement de Gradle 0.12.+ a 0.12.1 et ça va marcher.

    classpath 'com.android.tools.build:gradle:0.12.1'

2voto

Hissain Points 880

Le problème était que mon projet de bibliothèque d'appcompact était situé à un endroit différent. Lors de l'importation, je dois cocher la case "Copier le projet dans l'espace de travail", c'est tout !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X