Impossibile risolvere il simbolo "? Attr / actionBarSize" dopo l'aggiornamento di Android Studio da 2.3 a 3.0 per buildToolsVersion "26 .0.2 "


119

Dopo aver aggiornato Android Studio da 2.3 a 3.0 sono passato buildToolsVersionda 26.0.0 a 26.0.2 e successivamente ricevo questo errore:

Cannot resolve symbol '?attr/actionBarSize

Codice 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"/>

dipendenze:

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

Forse hai aggiornato la versione di gradle.
— Evan

Risposte:


243

Niente ha aiutato, ma cambiare:

?attr/actionBarSizeper ?android:attr/actionBarSizefare il lavoro.

In realtà è un bug in poche versioni. Anche se non lo risolverai, Android lo risolverà automaticamente in fase di esecuzione.


20
Penso che ?android:attr/actionBarSizesia compatibile solo con api 21, ?attr/actionBarSizerichiede un SDK pre-21 installato per Android Studio per vederlo. L'altro problema per me era assicurarmi che compileSdk e le librerie di supporto avessero lo stesso numero di versione principale (27 nel mio caso)
— Daniel Wilson

2
Hmmm, sembra un po 'magico, ma funziona. Mi piacerebbe vedere una spiegazione definitiva che descriva esattamente cosa rompe con i vari SDK e cosa funziona e perché.
— SMBiggs

sembra un bug perché il progetto viene compilato e compilato correttamente con questo errore.
— LMaker

34

Aggiorna tutte le versioni della tua libreria a 26.1.0(alla versione più recente) e aggiungi anche:

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

se stai usando Android Studio 3.0.0 e versioni successive, usa

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

Sincronizza il tuo progetto e l'errore si risolverà automaticamente perché ?attr/actionBarSizefa parte della v4libreria.


specifica di quale versione della libreria stai parlando
— D_Alpha

Ho dovuto cambiare: implementazione "com.android.support:support-v4:26.1.0" per compilare "com.android.support:support-v4:26.1.0"
— Louis Parkin

1
Usa implementationinvece di compileadesso.
— Suragch

Penso che questa risposta non dovrebbe essere la risposta selezionata. Perché ti costringe a usare la libreria support-v4 quando non devi. Puoi la risposta di Sid e Victoria Klimova è la risposta migliore, puoi evitare di utilizzare facilmente una libreria non necessaria nel tuo progetto ...
— Evren Yurtesen

Questa risposta non mi ha nemmeno aiutato. La risposta di Sid aiuta, ma non capisco perché ho bisogno del android:prefisso quando ho già aggiunto lo androidspazio dei nomi xmlns:android="http://schemas.android.com/apk/res/android"qualcuno lo sa?
— user1209216

28

Nella gerarchia della directory del progetto, passare da "Android" a "Progetto". Quindi eliminare una cartella ".idea / libraries", solo "libraries". Seleziona un'opzione dal menu "File -> Invalidate Caches / Restart ... -> Invalidate and Restart".


3
Questo ha funzionato anche per me. Ma curioso, perché lo ha fatto. Che cosa fa esattamente "Invalidate Caches / Restart"?
— Anil Gorthy

Grazie. Ha funzionato per me concom.android.support:support-v4:27.1.1
— Arash

11

Buon giorno, so che è un po 'tardi.

ma ho riscontrato anche questo, quando ho aggiornato ad Android Studio 3.0

quello che ho fatto è cambiato

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

per

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

Spero possa aiutare qualcuno.


support_library = '27 .1.1 'a support_library = '27 .1.0' ha funzionato per me. non so perché il downgrade è stato risolto.
— The Tokenizer

4

Questo è quello che ho fatto per risolvere esattamente lo stesso problema. 1. Vai a SDK manager. 2. Controllare l'API 27 di Android e Android 8.0 (Oreo) 3. Fare clic su "Applica" per scaricare e installare gli SDK 4. In build.gradle, modificare "buildToolsVersion" 26.0.1 "" in "buildToolsVersion" 26.0.2 "" e fai una sincronizzazione graduale.

Spero che questo possa aiutarti a risolvere il tuo problema.


3

La tua versione buildToolsVersion differisce dalla versione nelle dipendenze (ad esempio buildToolsVersion è 27.0.0 ma l'implementazione "com.android.support:support-v4:27.0.1"). Falli uguali.


2

il mio problema risolto cambiando compileSdkVersione targetSdkVersiondal 26l'ultima versione 27, anche u devi aggiornare ur dependenciesa 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'
}

spero che questo risolva anche il tuo problema :)


1

Prova ad aggiungerlo nelle tue dipendenze build.gradle (app):

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'
}

1

Questo ha funzionato.

Ho aggiornato la compilazione e supporto le versioni lib da 26.xx a 27.xx


1

Ho provato tutte le risposte qui e tante altre da molti posti, ma solo le tecniche seguenti hanno funzionato per me. Il modo più semplice è che devi solo chiudere il progetto, quindi importare lo stesso progetto come progetto Gradle Oppure puoi andare su Struttura progetto -> progetto -> modifica plugin Gradel = 4.4 e versione plugin Android = 3.1.4. Entrambi questi metodi sopra funzionano.

Nota: queste versioni (4.4, 3.1.4) sono le ultime quando scrivo questa risposta, per favore usa l'ultima versione invece di queste.


0

Forse hai aggiornato la versione di gradle. quando la mia versione gradle è 4.4 e la versione plugin è 3.1.1.

inserisci qui la descrizione dell'immagine


0

questo lavoro:

elimina tutti i file in $ HOME / .gradle / caches / transforms-1 / files-1.1 / appcompat-v7-27.1.1.aar



0

si prega di sostituire le librerie di supporto Android.

a partire dal

27.1.1

per

28.0.0-alpha3

e sostituire da 27 a 28 nei seguenti casi:

compileSdkVersion 28
buildToolsVersion "28.0.0"
targetSdkVersion 28

questo risolverà il problema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.