ERREUR: problèmes de rendu Les classes suivantes sont introuvables android.support.v7.internal.widget.ActionBarOverlayLayout

97

Je ne suis qu'un débutant dans le développement d'applications Android. Lorsque j'ai créé un nouveau projet sur Android Studio 1.1.0, il abandonne cette erreur " problèmes de rendu Les classes suivantes n'ont pas pu être trouvées android.support.v7.internal.widget.ActionBarOverlayLayout "

Maintenant, j'ai cherché à ce sujet sur Google et j'ai trouvé peut-être 3 solutions données par la plupart des gens.

Ils disent:

  1. Changez l'API (du volet de la fenêtre d'aperçu) de 22 à 21, ou

  2. Changez le thème de l'application de "Thème du projet" à n'importe quel autre thème.

  3. assurez-vous d'avoir importé la bonne bibliothèque appcompat-v7 dans la structure de votre projet -> dépendances, reportez - vous à ces étapes : Ajoutez l'identificateur de projet de fonctionnalité de bibliothèque de support à la section des dépendances. Par exemple, pour inclure le projet appcompat, ajoutez compile "com.android.support:appcompat-v7:18.0.+" à la section des dépendances, comme illustré dans l'exemple suivant:

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

Remarque: ma bibliothèque de support Android est à jour (installée à l'aide du gestionnaire SDK).

Après les deux premières étapes, a supprimé l'erreur. Mais je pense que ce ne sont pas des solutions permanentes, la deuxième étape semble être une solution de contournement temporaire. J'ai également des doutes sur la première étape, si pour supprimer l'erreur, nous changeons l'API de 22 à 21, puis à la fin, notre application ne fonctionnera pas sous Android 5.1.1 (API 22), elle serait limitée à Android 5.0 .1 et inférieurs uniquement (API 21). Mes doutes sont-ils valables? Concernant la troisième étape, est-ce la solution permanente à ce problème?

PS: Désolé pour les balises incompatibles, n'a pas été autorisé à ajouter des balises exactes en raison de la réputation du site

Ashish Goyal
la source
1
Pour moi, même les deux premières étapes ne résolvent pas le problème ... J'obtiens des "problèmes de rendu" avec toutes les mises en page qui ont des vues depuis android.support. *. C'est frustrant!
user1987392

Réponses:

162

Corrigez res / values ​​/ styles.xml comme ceci:

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar"/>

Explication détaillée comme demandé: Theme.AppCompat.Light.DarkActionBarest de Basetoute façon une sous-classe de la superclasse . Ctrl + clic (Android Studio) dessus et vous serez redirigé vers la source:

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

Nous n'avons rien changé, nous l'avons simplement défini plus précisément.

eee
la source
29
Wow, quelle expérience boiteuse dans Android Studio.
Warren P
6
Si je veux utiliser "Theme.AppCompat.Light.NoActionBar" alors quoi?
Haseeb Jadoon
4
Étrangement, ajouter le mot «Base». travaillé pour moi. "Toutes vos bases nous appartiennent."
SMBiggs
1
Cela a fonctionné pour moi aussi ... Je travaille sur une ancienne application et la base a corrigé l'erreur!
Saeid Yazdani
1
Pourquoi définir précisément le thème résout le problème?
Robert
28

Il s'agit d'un bogue connu depuis la version 1.1 d'Android Studio (il est également toujours en préversion 1.2 et 1.3). Le passage du niveau d'API de l'aperçu de 22 à 21 corrige le problème pour la plupart des gens. En attendant une solution, vous pouvez également l'essayer.

entrez la description de l'image ici

À l'origine répondu ici: Problèmes de rendu dans Android Studio v 1.1 / 1.2

Juste republier

Sagar Devanga
la source
16

Modifiez src / res / values ​​/ styles.xml

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"></style>

Ensuite, sélectionnez API22, vous trouverez ce problème résolu!

sudoz
la source
3

Après cette erreur, j'utilise:

API-22 Android 5.1.1 et ce problème existe toujours, mais vous pouvez en haut de la barre d'outils du studio Android, choisir:

Material Light -> Material Light

puis vous pouvez voir l'aperçu avec la barre d'outils et le thème clair.

J'espère que cela t'aides.

ʍѳђ ઽ ૯ ท
la source
1

J'ai résolu ce problème en passant au thème Holo Dark, puis en revenant au thème App. Je viens de cliquer sur le bouton au-dessus de la visionneuse qui indique le thème de l'application à côté de la vue de rotation dans Android Studio. Environ 10% du temps, cela seul ne fonctionne pas et je dois également changer l'API du spectateur de 22 à 19.

Je ne sais pas pourquoi cela fonctionne, mais les suggestions fournies ci-dessus n'ont pas fonctionné pour moi.

Austin Capobianco
la source
0

Vous n'avez pas besoin de changer de thème. Peut-être que vous étendez ActionBarActivity (obsolète) au lieu de simplement Activity. Modifiez-le et générez le projet.

Kley
la source
Nouvelles règles @Kleyton, au lieu d'étendre ActionBarActivity (qui est désormais obsolète), il est conseillé d'étendre AppCompatActivity (selon les pages de développement Google Android).
Ashish Goyal
0

Si vous modifiez l'activité d'ActionBarActivity en uniquement Activity, n'oubliez pas d'importer l'activité elle-même. C'est

importer android.app.Activity

C'est nul mais bon, c'est leur faute et pas la nôtre.

Vous pouvez également changer simplement le thème en appuyant sur le "AppTheme" et choisissez Holo.Light.DarkActionBar. Il met à jour automatiquement le fichier styles.xml, puis reconstruisez le projet.

J'ai fait tout cela et cela fonctionne pour moi même si je pense que les gars de Google et d'IntelliJ devraient faire quelque chose pour résoudre ce problème de rendu depuis qu'on nous a dit de passer d'Eclipse à Android Studio

Andrecon
la source
De nouvelles règles sont apparues bro! Au lieu d'étendre ActionBarActivity (qui est désormais obsolète), il est conseillé d'étendre AppCompatActivity (selon les pages des développeurs Google Android).
Ashish Goyal
Cela fonctionne-t-il de la même manière que Activity? Et prend-il en charge les problèmes de rendu XML?
Andrecon
Selon les pages des développeurs Google Android, il (AppCompatActivity) s'occupe de tout ce qu'ActionBarActivity faisait auparavant
Ashish Goyal