web-dev-qa-db-fra.com

Impossible de trouver Theme.AppCompat.Light pour New Android Support ActionBar

J'essaie d'implémenter la nouvelle bibliothèque de support ActionBar qui a été publiée par Google il y a quelques jours. Dans le passé, j'ai implémenté avec succès ActionBarSherlock sans aucun problème en utilisant la même méthode que celle répertoriée sur la page Support Library Setup de Google Developer - en utilisant le guide sur la manière d'inclure les ressources (ce qui est similaire à la façon dont ActionBarSherlock l'a fait.) ). Le projet de bibliothèque est également chargé dans mon propre projet.

Je peux dire que la bibliothèque se charge bien. Lorsque, au lieu d'étendre Activity sur mon MainActivity.Java, je l'ai modifié pour étendre ActionBarActivity (selon les instructions de Google), aucune erreur ne se produit - et l'importation est correcte.

J'ai même essayé de contourner le fichier style.xml et d'ajouter @style/Theme.AppCompat.Light directement dans le fichier AndroidManifest.xml pour <application> et <activity> avec Android:theme="@style/ThemeAppCompat.Light", toutes les tentatives entraînant la même erreur. .

Maintenant, le problème est que je ne peux pas le faire changer de thème, et encore moins de construire sans générer d’erreur. Vous trouverez ci-dessous le message d'erreur que je reçois, suivi du fichier style.xml que j'ai modifié pour utiliser le nouveau thème.

Je possède une expérience modérée du travail avec les applications Android et exécute Eclipse avec la dernière version des bibliothèques de support et du SDK compilées avec l'API 18 (Android 4.3).

Erreur reçue pendant la construction

error: Erreur lors de l'extraction du parent pour l'élément: aucune ressource trouvée ne correspond au nom donné '@ style/Theme.AppCompat.Light'. styles.xml/ActBarTest/res/values ​​line 3 Android AAPT Problème

style.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.ProsoftStudio.ACTest" parent="@style/Theme.AppCompat.Light">
    </style>
</resources>

Aucune suggestion? Cela n'a jamais été un problème avec ActionBarSherlock. Je souhaite utiliser cette nouvelle bibliothèque de support. On dirait presque que le fichier .jar se charge, mais pas les ressources.

349
Brandon Enriquez

Vous devez faire ensuite:

  1. File->Import (Android-sdk\extras\Android\support\v7). Choisissez "AppCompat"
  2. Project-> properties->Android. Dans la bibliothèque de sections "Ajouter" et choisissez "AppCompat"
  3. C'est tout!

Remarque: si vous utilisez "Android: showAsAction" dans l'élément de menu, vous devez modifier le préfixe Android comme dans l'exemple http://developer.Android.com/guide/topics/ui /actionbar.html

386
Svyatoslav Lobach

Si, comme moi, vous suivez le tutoriel Android sur http://developer.Android.com/training/basics/actionbar/setting-up.html et continuez à l'obtenir Erreur, essayez de changer le style AppBaseTheme dans tous les fichiers styles.xml. En détail:

  1. Dans le fichier res/values/styles.xml changez la ligne:

    <style name="AppBaseTheme" parent="Android:Theme.Light">
    

    à:

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
    
  2. Dans le fichier res/values-v11/styles.xml changez la ligne:

    <style name="AppBaseTheme" parent="Android:Theme.Holo.Light">
    

    à:

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
    
  3. Dans le fichier res/values-v14/styles.xml changez la ligne:

    <style name="AppBaseTheme" parent="Android:Theme.Holo.Light.DarkActionBar">
    

    à:

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    

Maintenant, l'application devrait fonctionner correctement.

117
marco110

Je vais partager mon expérience avec ce problème. Je devenais fou à cause de cela, mais j’ai découvert que le problème était un bogue avec Eclipse lui-même, plutôt que mon code: Dans Eclipse, impossible de faire référence à un projet de bibliothèque Android dans un autre Android projet

Ainsi, si vous avez la bibliothèque de support Android dans votre lecteur C: et votre projet dans le lecteur D: de votre ordinateur, Eclipse ne fonctionnera pas correctement et ne saura pas où se trouve la bibliothèque de support Android. est (coche verte se transforme en croix rouge). Pour résoudre ce problème, vous devez déplacer les deux projets sur le même disque dur.

28
DrFred

Ce problème peut survenir dans Android Studio si vous modifiez des modules de structure de projet. Dans ce cas, vous devrez peut-être ajouter les dépendances à nouveau. Dans un éditeur de texte, éditez le fichier 'build.gradle' pour inclure les dépendances requises:

dependencies {
    compile 'com.Android.support:appcompat-v7:+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

Ceci devrait mettre à jour votre fichier '{votre_nom_projet} .iml' avec les composants lib:

<orderEntry type="library" exported="" name="appcompat-v7-19.0.1" level="project" />
26
David Douglas

J'ai effectué les opérations suivantes dans Eclipse avec le projet Android Support Library (APL) et le projet principal (MP):

  1. Assuré les deux APL et MP avaient le même minSdkVersion et targetSdkVersion.

  2. Ajout de APL en tant que dépendance de construction pour MP:

    1. Aller dans "Propriétés> Java Chemin de construction" de MP, puis

    2. Sélectionner l'onglet "Projets" et ajouter APL.

  3. Dans les propriétés de MP, sous "Android", une référence à APL a été ajoutée sous bibliothèque.

1 et 2 ont obtenu les références aux classes Java qui fonctionnaient bien ... Cependant, je voyais toujours l'erreur dans le manifest.xml pour MP lorsque je tentais de référencer @style/Theme.AppCompat.Light de APL. Ce n'est parti quand j'ai effectué l'étape 3.

23
yogi

C'est un peu tard, mais voici comment je le fais dans AndroidStudio!

Cliquez avec le bouton droit sur l'application pour accéder aux propriétés. Right click on app to goto properties

Allez à Dépendances et cliquez sur le signe '+' et choisissez la dépendance de la bibliothèque Go to Dependencies and click on '+' sign and choose library dependency Choisissez appcompat-v7 Choose appcompat-v7

16
Rahul Kumar

IntelliJ IDEA solution.

1. Exécutez le gestionnaire de SDK Android et installez le dernier SDK et Bibliothèque de support Android . La version de SDK et de Android Support Libarary doivent être identiques ! 23 dans mon cas. Une autre variante vous donnera les erreurs.
enter image description here
2. Remplacez la version SDK de votre projet IDEA par la dernière que vous avez installée à l'étape précédente. (ps. vous ne pouvez pas utiliser Maven).
enter image description here

3. Ajoutez un nouveau module de source existante à votre projet IDEA.
enter image description here

4. Ajouter un projet AppCompat. !!! Devrait aussi être sous le dernier SDK! (ps. Dites "Oui" n'importe où dans le processus de cette étape)
enter image description here

5. Ouvrez les paramètres de votre module de projet principal et ajoutez-y les 3 prochaines dépendances:

5.1. Dépendance du module. Choisissez Android-support-v7-appcompat
enter image description here

5.2. 2 pc. Dépendances de la bibliothèque. Ajouter Android-sdk\extras\Android\support\v7\appcompat\libs\Android-support-v4.jar et Android-support-v4\Android-support-v7-appcompat.jar
enter image description here

Au total ce sera:
enter image description here

6. Très important !!!
Ajoutez un thème avec le préfixe @style (pas un autre!) .
enter image description here



solution Android Studio.

1. Exécutez le gestionnaire de SDK Android et installez le dernier SDK et Bibliothèque de support Android . La version de SDK et de Android Support Libarary doivent être identiques ! 23 dans mon cas. Une autre variante vous donnera les erreurs.
enter image description here

2. Ajouter en regard de build.gradle

dependencies {
    compile 'com.Android.support:appcompat-v7:23.0.1'
} 

P.S. Si vous êtes nouveau dans Android en développement, je vous recommande fortement de passer à Android Studio & Studio en ce moment. Vous obtiendrez le moyen le plus simple de gérer votre application Android. .

12
Yuliia Ashomok

Pour Android Studio 1.2.2

Supprimez "Android" de la valeur de l'attribut parent:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>
9
mumush

vous avez besoin de la référence $ Android_SDK/suppléments/Android/support/v7/appcompat

7
Crossle Song

Pour IntelliJ IDEA ou Android Studio:

Ajouter ceci au fichier de construction app.gradle

dependencies {
    compile "com.Android.support:appcompat-v7:21.0.+"
} 

Remplacez -v:xx.0+, par votre cible de construction, si vous avez 19 plates-formes, cela doit ressembler à:

dependencies {
    compile "com.Android.support:appcompat-v7:19.0.+"
}
5
geniushkg

Mon problème est résolu via les étapes suivantes

  1. Fichier-> Importer (Android-sdk\extras\Android\support\v7\appcompat)
  2. Clic droit sur Projet-> Propriétés-> Android. Dans la bibliothèque de sections "Ajouter" et choisissez la bibliothèque appcompat à inclure à l'étape 1
  3. Supprimer tous les fichiers du répertoire libs du projet
  4. ajoute le fichier suivant au répertoire libs du projet <SDK-PATH>\extras\Android\support\v13Android-support-v13.jar

    Redémarrez Eclipse si nécessaire. C'est ça. Votre problème devrait être disparu.

3
Wasim A.

J'ai eu le même problème et perdre mes 4-5 heures pour la solution. Mon problème résolu avec;

  1. Dans le gestionnaire de SDK, supprimez les packages "Support Library" et "Android Support de stockage".
  2. Réinstallez "Android Support Library" et "Android Support de stockage"
  3. Supprimez "Android-support-v7-appcompat" ou "appcompat_v7" les autres éléments de votre projet.
  4. Importez Android-support-v7-appcompat depuis "adt-bundle-windows-x86_64-20140702\sdk\extras\Android\support\v7\appcompat"
  5. Sélectionnez votre projet et dans le fichier, choisissez les propriétés et recherchez Java Chemin de construction, puis dans l'onglet "Projet", supprimez les autres éléments, puis cliquez sur Ajouter. et vous devez voir "Android-support-v7-appcompat", sélectionnez-le et ajoutez-le à l'onglet Projet.
  6. Vérifiez votre fichier project.properties sous vos fichiers de projet, vous verrez comme ceci; target = Android-21 Android.library.reference.1 = ../Android-support-v7-appcompat puis vérifiez le fichier AndroidManifest.xml si la cible est 21 ou quoi d’autre que vous avez choisi. Vérifiez également que la référence de la bibliothèque est identique à celle de votre bibliothèque précédemment choisie.

J'espère que vous trouverez votre solution.

3
syildizeli

Suivez les étapes de @rcdmk. Supprimez le Android support v4.jar dans VOTRE projet. Il entre en conflit avec la nouvelle version mise à jour trouvée dans appcompat.

3
i_am_leo

travaux:

<style name="MyApp" parent="Theme.AppCompat.Light">
</style>
<style name="MyApp" parent="@style/Theme.AppCompat.Light">
</style>
<style name="Theme.AppCompat.Light.MyApp">
</style>
2
Yin

Étant donné que le dialogue d'importation est différent dans Android Studio 1.0.1, je ne parviens pas à faire fonctionner la version de Svyatoslav Lobachs.

Au lieu de cela, j'ai téléchargé "Android Support Repository" dans le SDK Manager. Puis ajouté

dependencies {
...
compile "com.Android.support:appcompat-v7:18.0.+"
}

à build.gradle. Travaillé pour moi.

2
qwertz

La solution la plus rapide:

faites un clic droit sur le projet -> Android outils -> Ajouter une bibliothèque de support ..

enter image description here

1
Jesus Dimrix

J'ai rencontré le même problème que l'OP après avoir cliqué avec le bouton droit de la souris sur mon projet et sélectionné Fermer les projets non liés.

Dans mon cas, j'ai résolu le problème en rouvrant le projet appcompat_v7 et en nettoyant/reconstruisant les deux projets.

1
ban-geoengineering

http://developer.Android.com/tools/support-library/setup.html a un bogue. Dans Property-> Java build path -> 'Project' et 'Order and Export', il ne devrait pas y avoir de jar. En les supprimant et en cochant "Bibliothèques privées Android" et "Dépendances Android", mon problème a été résolu.

1
Joe C

Cela m'est arrivé quand Eclipse (Luna)/AndroidSDK (pas Android Stduio) ont été utilisés avec les derniers outils et la dernière bibliothèque le 14 janvier 2015 au cours du projet, comme HelloWorld. Lorsque j'ai installé ces outils et fait de HelloWorld la première application, j'ai accepté tous les paramètres par défaut. - C'est le problème dans mon cas.

Commencez par vérifier si la bibliothèque "Android Support Library" est installée. Sinon, installez-le. Il n'est pas installé par défaut. Vous pouvez tout faire dans "Android SDK manager" disponible dans le menu.

(Gestionnaire de SDK Android -> Extra -> Android Bibliothèque de support)

Bénédictions, (un débiteur) <> <

1
Youngsup Kim

La solution acceptée fonctionnait pour moi une fois, mais pas maintenant. Je devais recréer un hello-world du même genre (!) Dans un nouvel espace de travail, le faire compiler, puis copier tous les répertoires, y compris .hg et .hgignore. hg diff montre:

-        Android:targetSdkVersion="19" />
+        Android:targetSdkVersion="21" />

Binary file libs/Android-support-v4.jar has changed

Il semble que Eclipse souhaite compiler pour API 21 et ne rien faire avec API 19. Sombre.

0

J'ai eu le même problème et même après l'importation/l'ajout d'une jar/bibliothèque comme mentionné dans les réponses, cela ne résoudrait pas l'erreur. Par frustration, je viens de créer un nouvel espace de travail et de créer un nouveau projet Android. Ce dernier importait automatiquement appcompat_v7 et aucune erreur ne se produisait lors du nettoyage et de la construction. N'a pas eu besoin d'importer un seul jar/bibliothèque manuellement. Pour info, j'utilise Eclipse Mars.1 Release (4.5.1) et je rencontrais exactement le même problème à chaque fois que je créais un nouveau projet Android.

0
API

dans Eclipse, cliquez avec le bouton droit de la souris sur votre projet -> sélectionnez le chemin de construction, puis sélectionnez configurer le chemin de construction. dans la fenêtre, sélectionnez le fichier jar que vous souhaitez et actualisez votre projet.

0
Rahul

Je ne sais pas combien d'entre vous ont remarqué cela. Soutenez la bibliothèque "appcompat_v7" et votre projet devrait se trouver dans le même répertoire (je parle du répertoire de l'espace de travail). Ne nettoyez pas votre projet jusqu'à ce qu'il soit exempt d'erreur, sinon vous aurez du mal avec R.Java

0
Isham

Oublie tout. Utilisez simplement la bibliothèque appcompat téléchargée à l'aide de Android Studio. Il a toutes les définitions manquantes. Que vous utilisiez Eclipse ou non.

0
Rohit Rokde

Pour Android Studio ou IntelliJ, il vous suffit de mettre à jour vos dépendances dans gradle.build. J'ai utilisé ce qui suit:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.Android.support:appcompat-v7:21.0.2'
}
0
BostonGeorge

Si vous avez ajouté appCompat Bibliothèque et avez également donné la référence appropriée à appCompat à partir de l'emplacement du SDK, essayez "invalidate caches/Restart".
Vous pouvez le trouver dans le menu "Fichier" de Android Studio.

0
Suraj Dubey

Dans mon cas, le problème est survenu depuis que je voulais utiliser un SDK qui n'inclut pas la bibliothèque requise. Quand j'ai augmenté le min. Niveau du SDK, le problème a disparu. Bien sûr, inclure directement la bibliothèque elle-même devrait également supprimer l'erreur.

0
Barbaros Erdogdu

J'ai fait une erreur vraiment stupide pour cela. Quand j'ai eu la même erreur à chaque fois, je ne pouvais pas comprendre ce qui n'allait pas. ensuite, il m’a fait comprendre qu’une fois que j’avais fermé tous les projets de mon espace de travail, c’était le temps depuis que tous les problèmes ont commencé. SO vérifiez simplement que votre "appcompat_v7" n'est pas fermé. Si c'est le cas, ouvrez le projet par un double clic, puis nettoyez et reconstruisez votre projet. Dans mon cas, les erreurs avaient disparu. Bon codage!

0
Riddhi Dudani

Je ne suis pas sûr que la bibliothèque de support v13 soit disponible lorsque cette question a été posée, mais au cas où quelqu'un aurait encore du mal, j'ai vu que l'ajout de Android-support-v13.jar corrigera tout. Voici comment je l'ai fait:

  1. Clic droit sur le projet -> Propriétés
  2. Sélectionnez Java Chemin de construction dans la table des matières de gauche.
  3. Aller à l'onglet Bibliothèques
  4. Ajouter des pots externes et sélectionner <your sdk path>\extras\Android\support\v13\Android-support-v13.jar
0
swap_1712

J'ai le message d'erreur:

Erreur: (18) Erreur lors de l'extraction du parent pour l'élément: aucune ressource trouvée ne correspond au nom donné 'Theme.AppCompat.NoActionBar'.

avec cette configuration:

  compileSdkVersion 23
  buildToolsVersion "23.0.1"

Je dois changer le thème de:

 <style name="AppTheme" parent="Theme.AppCompat.NoActionBar"/>

à:

 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"/>
0
Jorgesys

Vous feriez mieux de créer un nouveau projet avec n’importe quel nom, puis utilisez appcompat_v7 que ce programme crée.

Right Click Project-> properties->Android

Dans la section library Add et choisissez la bibliothèque appcompat.

0
Sale