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'

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.


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.


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".


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.


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.


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.


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 :)


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

1

Isso funcionou.

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


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.


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


0

Este trabalho:

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



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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.