Impossible de résoudre le symbole «? Attr / actionBarSize» après la mise à jour d'Android Studio de 2.3 vers 3.0 pour buildToolsVersion «26 .0.2 »

119

Après la mise à jour d'Android Studio de 2.3 à 3.0, je suis passé buildToolsVersionde 26.0.0 à 26.0.2 et après, j'obtiens 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'
Rahul Roshan
la source
Peut-être avez-vous mis à jour la version de gradle.
Evan

Réponses:

243

Rien n'a aidé, mais changer:

?attr/actionBarSizepour ?android:attr/actionBarSizefaire le travail.

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

Victoria Klimova
la source
20
Je pense que ce ?android:attr/actionBarSizen'est compatible qu'avec l'api 21, ?attr/actionBarSizenécessite un sdk pré-21 installé pour Android Studio pour le voir. L'autre problème pour moi était de m'assurer que les bibliothèques compileSdk et de support ont le même numéro de version majeur (27 dans mon cas)
Daniel Wilson
2
Hmmm, ça semble un peu magique, mais ça marche. J'aimerais voir une explication définitive qui décrit précisément ce qui rompt avec les différents sdks et ce qui fonctionne et pourquoi.
SMBiggs
cela semble être un bogue car le projet compile et compile correctement cette erreur.
LMaker
34

Mettez à jour toutes les versions de votre bibliothèque vers 26.1.0(vers 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 supérieur, utilisez

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

Synchronisez votre projet et l'erreur se résoudra automatiquement car elle ?attr/actionBarSizefait partie de la v4bibliothèque.

Kunwar Ajeet Singh Rajput
la source
spécifiez de quelle version de bibliothèque vous parlez
D_Alpha
J'ai dû changer: implémentation 'com.android.support:support-v4:26.1.0' pour compiler 'com.android.support:support-v4:26.1.0'
Louis Parkin
1
Utilisez implementationplutôt que compilemaintenant.
Suragch
Je pense que cette réponse ne devrait pas être la réponse choisie. Parce que cela vous oblige à utiliser la bibliothèque support-v4 lorsque vous n'en avez pas besoin. Vous pouvez La réponse de Sid et Victoria Klimova est la meilleure réponse, vous pouvez éviter d'utiliser une bibliothèque inutile dans votre projet facilement ...
Evren Yurtesen
Cette réponse ne m'a même pas aidé. La réponse de Sid aide, mais je ne comprends pas pourquoi j'ai besoin d'un android:préfixe alors que j'ai déjà ajouté un androidespace de noms, xmlns:android="http://schemas.android.com/apk/res/android"est-ce que quelqu'un le sait?
user1209216
28

Dans la hiérarchie du répertoire du projet, basculez "Android" sur "Projet". Puis supprimez un dossier «.idea / bibliothèques», uniquement «bibliothèques». Sélectionnez une option dans le menu "Fichier -> Invalider les caches / Redémarrer ... -> Invalider et redémarrer".

Oleh Kholiavchuk
la source
3
Cela a fonctionné pour moi aussi. Mais curieux, pourquoi il l'a fait. Que fait exactement "Invalidate Caches / Restart"?
Anil Gorthy
Merci. Cela a fonctionné pour moi aveccom.android.support:support-v4:27.1.1
Arash
11

Bonne journée, je sais que c'est un peu tard.

mais j'ai rencontré celui-ci aussi, lorsque 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 peut aider quelqu'un.

Chris Palma
la source
support_library = '27 .1.1 'à support_library = '27 .1.0' a fonctionné pour moi. Je ne sais pas pourquoi la rétrogradation a été corrigée.
The Tokenizer
4

C'est ce que j'ai fait pour résoudre exactement le même problème. 1. Accédez au gestionnaire de SDK. 2. Vérifiez l'API Android 27 et Android 8.0 (Oreo) 3. Cliquez sur "Appliquer" pour télécharger et installer ces SDK 4. Dans build.gradle, remplacez "buildToolsVersion" 26.0.1 "" par "buildToolsVersion" 26.0.2 "" et effectuez une synchronisation graduelle.

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

Baoqiang Yan
la source
3

Votre version de buildToolsVersion diffère de la version dans les dépendances (par exemple, buildToolsVersion est 27.0.0 mais implémentation 'com.android.support:support-v4:27.0.1'). Faites-en la même chose.

Andrew Glukhoff
la source
2

mon problème résolu en changeant compileSdkVersionet targetSdkVersionde 26la dernière version 27, aussi u besoin de mettre à niveau ur dependenciesà 27.

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com......"
        minSdkVersion 15
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.0'
    implementation 'com.android.support:design:27.1.0'
}

j'espère que cela résoudra aussi votre problème :)

IRvanFauziE
la source
1

Essayez d'ajouter ceci dans vos dépendances build.gradle (application):

resolutionStrategy {
    force libraries.support.appCompat
    force libraries.support.design
    force 'com.android.support:support-utils:26.0.1'
    force 'com.android.support:support-compat:26.0.1'
}
petryk33
la source
1

Cela a fonctionné.

J'ai mis à jour les versions de compilation et de support de la bibliothèque de 26.xx à 27.xx

Mahi
la source
1

J'ai essayé toutes les réponses ici et tant d'autres dans de nombreux endroits, mais seules les techniques ci-dessous ont fonctionné pour moi. La manière simple est qu'il vous suffit de fermer le projet puis d' importer le même projet qu'un projet Gradle Ou vous pouvez aller dans Structure du projet -> projet -> changer le plugin Gradel = 4.4 et la version du plugin Android = 3.1.4. Ces deux méthodes fonctionnent.

Remarque: Ces versions (4.4, 3.1.4) sont les plus récentes lorsque j'écris cette réponse, veuillez utiliser la dernière version à la place de celles-ci.

Biswajit
la source
0

Peut-être avez-vous mis à jour la version de gradle. quand ma version gradle est 4.4 et la version plugin est 3.1.1.

entrez la description de l'image ici

Evan
la source
0

ce travail:

supprimer tous les fichiers dans $ HOME / .gradle / caches / transforms-1 / files-1.1 / appcompat-v7-27.1.1.aar

Mieux
la source
0

veuillez remplacer les bibliothèques de support Android.

de

27.1.1

à

28.0.0-alpha3

et remplacez 27 par 28 pour les cas suivants:

compileSdkVersion 28
buildToolsVersion "28.0.0"
targetSdkVersion 28

cela résoudra le problème.

Ahamadullah Saikat
la source