Lorsque j'essaie d'étendre ActionBarActivity, je dois utiliser le thème AppCompat (Theme.AppCompat.Light). Quand j'essaie de l'ajouter dans le manifeste et styles.xml, je reçois
Erreur: (31, 28) Aucune ressource trouvée qui correspond au nom donné (à 'Thème' avec la valeur '@Android: style/Theme.AppCompat.Light').
Bien que j’ai téléchargé les bibliothèques de support et que je l’ai inclus dans mon fichier build.gradle ->
dependencies {
compile 'com.Android.support:appcompat-v7:19.0.+'
compile 'com.Android.support:support-v4:19.0.+'}
Dans Android Studio, j'avais la même erreur lors de l'utilisation de Android:theme='@Android:style/Theme.AppCompat.Light
, mais lorsque j'utilise Android:theme="@style/Theme.AppCompat.Light"
dans le fichier AndroidManifest.xml, l'erreur a disparu.
La différence semble être liée au thème "@Android" fourni par l'ensemble du système Android, à un thème "@ style" défini localement. L'utilisation du thème défini localement fonctionne car la dépendance de gradeau a été définie sur la bibliothèque appcompat compile 'com.Android.support:appcompat-v7:19.0.+'
, qui est importée en tant que thème local.
À titre de référence, la documentation officielle de Google pour les développeurs Android concernant l'ajout du ActionBar sur les appareils Android 2.1+ indique: Android:theme="@style/Theme.AppCompat.Light"
https://developer.Android.com/training/basics/actionbar/setting-up. html
Depuis Android Studio, différent d’Eclipse:
Ouvrez le fichier build.gradle pour votre application.
Incluez le projet appcompat et ajoutez la compilation "com.Android.support:appcompat-v7:18.0.+" à la section dependencies, comme indiqué dans l'exemple suivant:
dépendances { ... compiler "com.Android.support:appcompat-v7:18.0.+"}
Ma note: dans styles.xml, supprimez la référence à Android comme suit:
style name = "AppTheme" parent = "Theme.AppCompat.Light"
Invalider Caches/restart dans le menu Fichier fait toujours le travail à ma place
Utilisez Theme.AppCompat.Light au lieu de AppCompat.Theme.Light
Ce qui se passe, c'est que la dépendance responsable de ce style n'est pas reconnue.
supprimez-les simplement de build.gradle si vous les avez:
'com.Android.support:appcompat-v7:28.0.0'
'com.Android.support:design:28.0.0'
puis synchronisez, puis annulez supprimer, puis synchronisez à nouveau.