Не удается разрешить символ '? Attr / actionBarSize' после обновления Android Studio с 2.3 до 3.0 для buildToolsVersion '26 .0.2 '


119

После обновления Android Studio с 2.3 до 3.0 я перешел buildToolsVersionс 26.0.0 на 26.0.2, и после этого я получаю эту ошибку:

Cannot resolve symbol '?attr/actionBarSize

Код 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"/>

зависимости:

compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support:design:26.1.0'

Возможно, вы обновили версию gradle.
Эван

Ответы:


243

Ничего не помогло, но поменял:

?attr/actionBarSizeсделать ?android:attr/actionBarSizeсвою работу.

На самом деле это ошибка в нескольких версиях. Даже если вы не исправите это, Android автоматически исправит это во время выполнения.


20
Я думаю, что ?android:attr/actionBarSizeон совместим только с api 21, для его просмотра ?attr/actionBarSizeтребуется установленный SDK до 21 для Android Studio. Другой проблемой для меня было убедиться, что compileSdk и вспомогательные библиотеки имеют одинаковый основной номер версии (27 в моем случае)
Дэниел Уилсон,

2
Хммм, кажется немного волшебным, но это работает. Я хотел бы увидеть исчерпывающее объяснение, которое точно описывает, что ломается с различными SDK, что работает и почему.
SMBiggs

это похоже на ошибку, потому что проект компилируется и компилируется с этой ошибкой.
LMaker 02

34

Обновите все версии вашей библиотеки до 26.1.0(до самой последней версии), а также добавьте:

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

если вы используете Android Studio 3.0.0 и выше, используйте

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

Синхронизируйте свой проект, и ошибка автоматически разрешится, потому что ?attr/actionBarSizeэто часть v4библиотеки.


укажите, о какой версии библиотеки вы говорите
D_Alpha

Мне пришлось изменить: реализацию com.android.support:support-v4:26.1.0 для компиляции com.android.support:support-v4:26.1.0
Луи Паркин

1
Используйте implementationвместо compileсейчас.
Suragch

Я думаю, что этот ответ не должен быть выбранным. Потому что это заставляет вас использовать библиотеку support-v4, когда вам это не нужно. Вы можете Сида и Виктории Климовой, ответ - лучший ответ, вы можете легко избежать использования ненужной библиотеки в своем проекте ...
Эврен Юртесен

Этот ответ мне даже не помог. Ответ Сида помогает, но я не понимаю, зачем мне android:префикс, когда я уже добавил androidпространство имен xmlns:android="http://schemas.android.com/apk/res/android", кто-нибудь знает?
user1209216

28

В иерархии каталогов проекта переключите «Android» на «Project». Затем удалите папку «.idea / libraries», только «библиотеки». Выберите параметр в меню «Файл -> Недействительный кеш / перезапуск ... -> Недействительный и перезапуск».


3
Это сработало и для меня. Но любопытно, почему это произошло. Что именно делает «Недействительный кеш / перезапуск»?
Анил Горти

Спасибо. У меня это сработало сcom.android.support:support-v4:27.1.1
Arash

11

Добрый день, я знаю, что уже поздно.

но я тоже столкнулся с этим, когда обновился до Android Studio 3.0

что я сделал, я изменил

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

в

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

Надеюсь, это поможет кому-нибудь.


support_library = '27 .1.1 'to support_library = '27 .1.0' работал у меня. не уверен, почему исправлено понижение версии.
The Tokenizer

4

Это то, что я сделал, чтобы исправить ту же проблему. 1. Заходим в диспетчер SDK. 2. Проверьте Android API 27 и Android 8.0 (Oreo) 3. Нажмите «Применить», чтобы загрузить и установить эти SDK 4. В build.gradle измените buildToolsVersion «26.0.1» на buildToolsVersion «26.0.2» » и выполните синхронизацию градиента.

Надеюсь, это поможет решить вашу проблему.


3

Ваша версия buildToolsVersion отличается от версии зависимостями (например, buildToolsVersion - 27.0.0, но реализация com.android.support:support-v4:27.0.1). Сделайте их такими же.


2

моя проблема решена путем изменения compileSdkVersionи targetSdkVersionот 26до последней версии 27, также и необходимо обновить ур dependenciesк 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'
}

надеюсь, что это тоже решит проблему ур :)


1

Попробуйте добавить это в свои зависимости 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

Это сработало.

Я обновил версии компиляции и поддержки lib с 26.xx до 27.xx


1

Я попробовал все ответы здесь и многие другие из многих мест, но только методы ниже сработали для меня. Самый простой способ - вам просто нужно закрыть проект, а затем импортировать тот же проект, что и проект Gradle. Или вы можете перейти в Структура проекта -> проект -> изменить Gradel plugin = 4.4 и Android plugin version = 3.1.4. Оба этих метода работают.

Примечание. На момент написания этого ответа эти версии (4.4, 3.1.4) являются последними, пожалуйста, используйте последнюю версию вместо них.


0

Возможно, вы обновили версию gradle. когда моя версия Gradle - 4.4, а версия плагина - 3.1.1. Это нормально.

введите описание изображения здесь


0

эта работа:

удалить все файлы в $ HOME / .gradle / caches / transforms-1 / files-1.1 / appcompat-v7-27.1.1.aar



0

замените библиотеки поддержки Android.

из

27.1.1

в

28.0.0-alpha3

и замените 27 на 28 в следующих случаях:

compileSdkVersion 28
buildToolsVersion "28.0.0"
targetSdkVersion 28

это решит проблему.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.