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.