Não é possível resolver o símbolo '? Attr / actionBarSize' após atualizar o Android Studio de 2.3 para 3.0 para buildToolsVersion '26 .0.2 '

119

Depois de atualizar o Android Studio de 2.3 para 3.0, mudei buildToolsVersionde 26.0.0 para 26.0.2 e, depois disso, estou recebendo este erro:

Cannot resolve symbol '?attr/actionBarSize

Código 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"/>

Dependências:

compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support:design:26.1.0'
Rahul Roshan
fonte
Talvez você tenha atualizado a versão do gradle.
Evan

Respostas:

243

Nada ajudou, mas mudou:

?attr/actionBarSizepara ?android:attr/actionBarSizefazer o trabalho.

Isso é realmente um bug em algumas versões. Mesmo que você não conserte, o Android o corrigirá automaticamente em tempo de execução.

Victoria Klimova
fonte
20
Eu acho que ?android:attr/actionBarSizesó é compatível com a API 21, ?attr/actionBarSizerequer um SDK pré-21 instalado para o Android Studio para vê-lo. A outra questão para mim foi garantir que o compileSdk e as bibliotecas de suporte tenham o mesmo número de versão principal (27 no meu caso)
Daniel Wilson
2
Hmmm, parece um pouco mágico, mas funciona. Eu adoraria ver uma explicação definitiva que descreve exatamente o que rompe com os vários sdks e o que funciona e por quê.
SMBiggs
parece um bug porque o projeto compila e constrói ok com esse erro.
LMaker
34

Atualize todas as versões da sua biblioteca para 26.1.0(para a versão mais recente) e também adicione:

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

se você estiver usando o Android Studio 3.0.0 e superior, use

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

Sincronize seu projeto e o erro será resolvido automaticamente porque ?attr/actionBarSizefaz parte da v4biblioteca.

Kunwar Ajeet Singh Rajput
fonte
especificar qual versão da biblioteca que você está falando
D_Alpha
Eu tive que mudar: implementação 'com.android.support:support-v4:26.1.0' compilar 'com.android.support:support-v4:26.1.0'
Louis Parkin
1
Use em implementationvez de compileagora.
Suragch
Eu acho que essa resposta não deve ser a resposta selecionada. Porque obriga a usar a biblioteca support-v4 quando não é necessário. Você pode Sid e resposta de Victoria Klimova é a melhor resposta, você pode evitar o uso desnecessário da biblioteca no seu projeto facilmente ...
Evren Yurtesen
Essa resposta nem me ajudou. A resposta de Sid ajuda, mas não entendo por que preciso do android:prefixo quando já adicionei o androidnamespace xmlns:android="http://schemas.android.com/apk/res/android"alguém sabe?
user1209216
28

Na hierarquia de diretórios do projeto, alterne "Android" para "Projeto". Em seguida, exclua uma pasta ".idea / libraries", apenas "bibliotecas". Selecione uma opção no menu "Arquivo -> Invalidar caches / reiniciar ... -> Invalidar e reiniciar".

Oleh Kholiavchuk
fonte
3
Isso funcionou para mim também. Mas curioso, por que isso aconteceu. O que exatamente "Invalidate Caches / Restart" faz?
Anil Gorthy
Obrigado. Ela trabalhou para mim comcom.android.support:support-v4:27.1.1
Arash
11

Bom dia, eu sei que é um pouco tarde.

mas também encontrei esse quando atualizei para o Android Studio 3.0

o que eu fiz é que mudei

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

para

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

Espero que possa ajudar alguém.

Chris Palma
fonte
support_library = '27 .1.1 'to support_library = '27 .1.0' funcionou para mim. Não sei por que o downgrade foi corrigido.
O Tokenizer
4

Foi o que fiz para corrigir exatamente o mesmo problema. 1. Vá para o gerenciador do SDK. 2. Verifique a API Android 27 e o Android 8.0 (Oreo). 3. Clique em "Aplicar" para baixar e instalar esses SDKs. 4. No build.gradle, altere 'buildToolsVersion "26.0.1"' para 'buildToolsVersion "26.0.2"' e faça uma sincronização gradle.

Espero que isso ajude a corrigir seu problema.

Baoqiang Yan
fonte
3

Sua versão do buildToolsVersion difere da versão nas dependências (por exemplo, o buildToolsVersion é 27.0.0, mas a implementação 'com.android.support:support-v4:27.0.1'). Faça-os iguais.

Andrew Glukhoff
fonte
2

meu problema resolvido mudando compileSdkVersione targetSdkVersionde 26para a última versão 27, também vc precisa atualizar ur dependenciespara 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'
}

espero que isso resolva o seu problema também :)

IRvanFauziE
fonte
1

Tente adicionar isso nas suas dependências 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'
}
petryk33
fonte
1

Isso funcionou.

Atualizei as versões de compilação e suporte da lib de 26.xx para 27.xx

Mahi
fonte
1

Tentei todas as respostas aqui e muitas outras de vários lugares, mas apenas as técnicas abaixo funcionaram para mim. A maneira mais simples é apenas fechar o projeto e importar o mesmo projeto que um projeto Gradle. Ou você pode ir para Estrutura do projeto -> projeto -> alterar o plugin Gradel = 4.4 e a versão do plugin Android = 3.1.4. Ambos os métodos acima funcionam.

Nota: Essas versões (4.4, 3.1.4) são as mais recentes quando escrevo esta resposta. Use a versão mais recente em vez delas.

Biswajit
fonte
0

Talvez você tenha atualizado a versão do gradle. quando minha versão do gradle é 4.4 e a versão do plugin é 3.1.1.

insira a descrição da imagem aqui

Evan
fonte
0

Este trabalho:

exclua todos os arquivos em $ HOME / .gradle / caches / transforms-1 / files-1.1 / appcompat-v7-27.1.1.aar

Melhor
fonte
0

substitua as bibliotecas de suporte do Android.

de

27.1.1

para

28.0.0-alpha3

e substitua 27 a 28 nos seguintes casos:

compileSdkVersion 28
buildToolsVersion "28.0.0"
targetSdkVersion 28

isso irá corrigir o problema.

Ahamadullah Saikat
fonte