No se puede resolver el símbolo '? Attr / actionBarSize' después de actualizar Android Studio de 2.3 a 3.0 para buildToolsVersion '26 .0.2 '

119

Después de actualizar Android Studio de 2.3 a 3.0, cambié buildToolsVersionde 26.0.0 a 26.0.2 y luego recibo este error:

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

Dependencias:

compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support:design:26.1.0'
Rahul Roshan
fuente
Tal vez hayas actualizado la versión de gradle.
Evan

Respuestas:

243

Nada ayudó, pero cambiar:

?attr/actionBarSizepara ?android:attr/actionBarSizehacer el trabajo.

Eso es en realidad un error en algunas versiones. Incluso si no lo arregla, Android lo arreglará automáticamente en tiempo de ejecución.

Victoria Klimova
fuente
20
Creo que ?android:attr/actionBarSizesolo es compatible con api 21, ?attr/actionBarSizerequiere un sdk pre-21 instalado para que Android Studio lo vea. El otro problema para mí fue asegurarme de que compileSdk y las bibliotecas de soporte tengan el mismo número de versión principal (27 en mi caso)
Daniel Wilson
2
Mmmm, parece un poco mágico, pero funciona. Me encantaría ver una explicación definitiva que describa con precisión qué rompe con los distintos SDK y qué funciona y por qué.
SMBiggs
parece un error porque el proyecto se compila y construye bien con este error.
LMaker
34

Actualice todas las versiones de su biblioteca a 26.1.0(a la versión más reciente) y también agregue:

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

si está utilizando Android Studio 3.0.0 y superior, utilice

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

Sincronice su proyecto y el error se resolverá automáticamente porque ?attr/actionBarSizees parte de la v4biblioteca.

Kunwar Ajeet Singh Rajput
fuente
especifique de qué versión de biblioteca está hablando
D_Alpha
Tuve que cambiar: implementación 'com.android.support:support-v4:26.1.0' para compilar 'com.android.support:support-v4:26.1.0'
Louis Parkin
1
Úselo en implementationlugar de compileahora.
Suragch
Creo que esta respuesta no debería ser la respuesta seleccionada. Porque te obliga a usar la biblioteca support-v4 cuando no es necesario. Puede Sid y Victoria Klimova La respuesta es la mejor respuesta, puede evitar el uso de una biblioteca innecesaria en su proyecto fácilmente ...
Evren Yurtesen
Esta respuesta ni siquiera me ayudó. La respuesta de Sid ayuda, pero no entiendo por qué necesito un android:prefijo cuando ya he agregado un androidespacio de nombres, xmlns:android="http://schemas.android.com/apk/res/android"¿alguien lo sabe?
user1209216
28

En la jerarquía de directorios del proyecto, cambie "Android" a "Proyecto". Luego elimine una carpeta ".idea / libraries", solo "bibliotecas". Seleccione una opción del menú "Archivo -> Invalidar cachés / Reiniciar ... -> Invalidar y reiniciar".

Oleh Kholiavchuk
fuente
3
Esto funcionó para mí también. Pero curioso, ¿por qué lo hizo? ¿Qué hace exactamente "Invalidar cachés / Reiniciar"?
Anil Gorthy
Gracias. Me funcionó concom.android.support:support-v4:27.1.1
Arash
11

Buen día, sé que es un poco tarde.

pero también me encontré con este, cuando actualicé a Android Studio 3.0

lo que hice fue cambiar

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

a

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

Espero que pueda ayudar a alguien.

Chris Palma
fuente
support_library = '27 .1.1 'to support_library = '27 .1.0' funcionó para mí. No estoy seguro de por qué se corrigió la degradación.
The Tokenizer
4

Esto es lo que hice para solucionar exactamente el mismo problema. 1. Vaya al administrador de SDK. 2. Verifique Android API 27 y Android 8.0 (Oreo) 3. Haga clic en "Aplicar" para descargar e instalar esos SDK 4. En build.gradle, cambie 'buildToolsVersion "26.0.1"' a 'buildToolsVersion "26.0.2"' y haz una sincronización de Gradle.

Espero que esto pueda ayudar a solucionar su problema.

Baoqiang Yan
fuente
3

Su versión buildToolsVersion difiere de la versión en dependencias (por ejemplo, buildToolsVersion es 27.0.0 pero la implementación es 'com.android.support:support-v4:27.0.1'). Hazlos iguales.

Andrew Glukhoff
fuente
2

mi problema se resolvió cambiando compileSdkVersiony targetSdkVersiondesde 26la última versión 27, también necesita actualizar 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'
}

Espero que esto resuelva tu problema también :)

IRvanFauziE
fuente
1

Intente agregar esto en sus dependencias de build.gradle (aplicación):

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
fuente
1

Esto funcionó.

He actualizado la compilación y compatibilidad con las versiones de lib de 26.xx a 27.xx

Mahi
fuente
1

Probé todas las respuestas aquí y muchas otras de muchos lugares, pero solo las técnicas siguientes funcionaron para mí. La forma más sencilla es cerrar el proyecto y luego importar el mismo proyecto que un proyecto de Gradle. O puede ir a Estructura del proyecto -> proyecto -> cambiar el complemento de Gradel = 4.4 y la versión del complemento de Android = 3.1.4. Ambos métodos anteriores funcionan.

Nota: Estas versiones (4.4, 3.1.4) son las más recientes cuando escribo esta respuesta, use la última versión en lugar de estas.

Biswajit
fuente
0

Tal vez hayas actualizado la versión de gradle. cuando mi versión de Gradle es 4.4 y la versión del complemento es 3.1.1. Está bien.

ingrese la descripción de la imagen aquí

Evan
fuente
0

este trabajo:

eliminar todos los archivos en $ HOME / .gradle / caches / transforms-1 / files-1.1 / appcompat-v7-27.1.1.aar

Mejor
fuente
0

Reemplace las bibliotecas de soporte de Android.

de

27.1.1

a

28.0.0-alpha3

y reemplace 27 a 28 para los siguientes casos:

compileSdkVersion 28
buildToolsVersion "28.0.0"
targetSdkVersion 28

esto solucionará el problema.

Ahamadullah Saikat
fuente