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'

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.


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.


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


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.


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.


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.


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


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

1

Esto funcionó.

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


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.


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í


0

este trabajo:

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



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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.