Comment résoudre l'erreur Failed to find style 'coordinatorLayoutStyle' in current theme ?

Le composant "coordinatorLayout" est un composant essentiel des interfaces actuelles des applications Android. Il permet d'harmoniser les composants de la vue situés à l'intérieur en ajoutant un niveau de contrôle supplémentaire. C'est devenu un composant très utilisé dans les applications Android. C'est pourquoi le message "Failed to find style 'coordinatorLayoutStyle' in current theme" est problématique : il empêche d'utiliser la vue "design" lors du développement avec le logiciel Android Studio. Il existe heureusement des solutions pour résoudre ce problème.

Le message d'erreur peut s'afficher car il manque un élément dans le thème de l'application, celui qui appelle le composant "coordinatorLayout". Il faut alors modifier le fichier "styles.xml" pour y ajouter la balise suivante. Cette balise fonctionne avec la version 28 du SDK d'Android :

<style name="AppTheme">
    <item name="coordinatorLayoutStyle">@style/Widget.Support.CoordinatorLayout</item>
</style>

Si vous utilisez la version 27 du SDK, la valeur de la balise <item> n'est pas la même.

<style name="AppTheme">
    <item name="coordinatorLayoutStyle">@style/Widget.Design.CoordinatorLayout</item>
</style>

Si jamais aucune de ces solutions ne permet de trouver le composant "coordinatorLayout", vous pouvez vous appuyer sur l'autocomplétion de l'IDE. Placez-vous à l'intérieur la balise <item> et commencez à saisir le texte "CoordinatorLayout". L'IDE devrait vous afficher des options pour trouver le composant.

Une autre solution consiste à revenir en arrière dans la version du SDK installée. Il est possible que ce soit la version 28 du SDK qui entraîne cette erreur. Dans ce cas, revenir à la version 27 résout le problème. Rendez-vous dans le fichier "build.gradle" et remplacez la version du SDK utilisée par votre application.

compileSdkVersion 28 devient compileSdkVersion 27

targetSdkVersion 28 devient targetSdkVersion 27

Vous devez également modifier certaines dépendances pour qu'elles correspondent à la version 27 du SDK. Voici les versions des librairies à modifier pour correspondre au SDK :

implementation 'com.android.support:appcompat-v7:27.1.1'

implementation 'com.android.support:design:27.1.1'

Relancez la construction du projet avec Gradle et vous pourrez visualiser votre application dans la vue "Design" de l'éditeur.

Android