121 votes

Impossible de résoudre le symbole '?attr/actionBarSize' après la mise à jour d'Android Studio de la version 2.3 à la version 3.0 pour buildToolsVersion '26.0.2'.

Après avoir mis à jour Android Studio de 2.3 à 3.0, j'ai modifié buildToolsVersion de 26.0.0 à 26.0.2 et ensuite j'ai eu cette erreur :

Cannot resolve symbol '?attr/actionBarSize

Code Xml :

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/colorPrimary"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    app:titleTextColor="@android:color/white"/>

Dépendances :

compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support:design:26.1.0'

0 votes

Vous avez peut-être mis à jour la version de Gradle.

248voto

Victoria Klimova Points 2445

Rien n'a aidé, mais le changement :

?attr/actionBarSize à ?android:attr/actionBarSize a fait le travail.

C'est en fait un bug dans quelques versions. Même si vous ne le corrigez pas, Android le corrigera automatiquement au moment de l'exécution.

20 votes

Je pense ?android:attr/actionBarSize n'est compatible qu'avec l'api 21, ?attr/actionBarSize nécessite un sdk pré-21 installé pour Android Studio pour le voir. L'autre problème pour moi était de m'assurer que les librairies compileSdk et support avaient le même numéro de version majeure (27 dans mon cas).

2 votes

Hmmm, ça semble un peu magique, mais ça marche. J'aimerais bien voir une explication définitive qui décrive précisément ce qui casse avec les différents sdks et ce qui fonctionne et pourquoi.

0 votes

Il semble qu'il s'agisse d'un bug car le projet se compile et se construit bien avec cette erreur.

34voto

Mettez à jour toutes les versions de votre bibliothèque en 26.1.0 (à la version la plus récente) et ajoutez également :

compile 'com.android.support:support-v4:26.1.0'

si vous utilisez Android Studio 3.0.0 et plus, utilisez l'adresse suivante

implementation 'com.android.support:support-v4:26.1.0'

Synchronisez votre projet et l'erreur sera automatiquement résolue car ?attr/actionBarSize fait partie de v4 bibliothèque.

0 votes

Préciser de quelle version de la bibliothèque il s'agit

0 votes

J'ai dû changer : implémentation 'com.Android.support:support-v4:26.1.0' pour compiler 'com.Android.support:support-v4:26.1.0'.

1 votes

Utilisez implementation au lieu de compile maintenant.

28voto

Oleh Kholiavchuk Points 381

Dans la hiérarchie du répertoire du projet, changez "Android" en "Projet". Ensuite, supprimez un dossier ".idea/libraries", seulement "libraries". Sélectionnez une option dans le menu "Fichier -> Invalider les caches / Redémarrer... -> Invalider et redémarrer".

3 votes

Ça a marché pour moi aussi. Mais je suis curieux de savoir pourquoi ça a marché. Que fait exactement "Invalider les caches / Redémarrer" ?

0 votes

Merci. Cela a fonctionné pour moi avec com.android.support:support-v4:27.1.1

11voto

Chris Palma Points 188

Bonjour, je sais que c'est un peu tard.

mais j'ai rencontré celui-ci aussi, quand j'ai mis à jour vers Android Studio 3.0

Ce que j'ai fait, c'est que j'ai changé

compile 'com.android.support:support-v4:26.1.0'

à

implementation 'com.android.support:support-v4:26.1.0'

J'espère que cela pourra aider quelqu'un.

0 votes

Support_library = '27.1.1' vers support_library = '27.1.0' a fonctionné pour moi. Je ne sais pas pourquoi la rétrogradation a été corrigée.

4voto

Baoqiang Yan Points 51

Voici ce que j'ai fait pour résoudre exactement le même problème. 1. Allez dans le gestionnaire de SDK. 2. Vérifiez Android API 27 et Android 8.0 (Oreo). 3. Cliquez sur "Appliquer" pour télécharger et installer ces SDK. 4. Dans build.gradle, changez le "buildToolsVersion "26.0.1"" en "buildToolsVersion "26.0.2"" et faites une synchronisation gradle.

J'espère que cela pourra vous aider à résoudre votre problème.

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