Das Symbol '? Attr / actionBarSize' kann nach dem Aktualisieren von Android Studio von 2.3 auf 3.0 für buildToolsVersion '26 .0.2 'nicht aufgelöst werden.

119

Nach dem Update von Android Studio von 2.3 auf 3.0 habe ich buildToolsVersionvon 26.0.0 auf 26.0.2 gewechselt und danach erhalte ich folgende Fehlermeldung:

Cannot resolve symbol '?attr/actionBarSize

XML-Code:

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

Abhängigkeiten:

compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support:design:26.1.0'
Rahul Roshan
quelle
Vielleicht haben Sie die Version von gradle aktualisiert.
Evan

Antworten:

243

Nichts hat geholfen, aber sich geändert:

?attr/actionBarSizezu ?android:attr/actionBarSizehat seinen Zweck erfüllt.

Das ist eigentlich ein Fehler in wenigen Versionen. Auch wenn Sie es nicht reparieren, wird es von Android zur Laufzeit automatisch repariert.

Victoria Klimova
quelle
20
Ich denke, ?android:attr/actionBarSizeist nur mit API 21 kompatibel, ?attr/actionBarSizeerfordert eine Pre-21 SDK für Android Studio installiert, um es zu sehen. Das andere Problem für mich war sicherzustellen, dass die compileSdk- und Support-Bibliotheken die gleiche Hauptversionsnummer haben (27 in meinem Fall)
Daniel Wilson
2
Hmmm, scheint ein bisschen magisch, aber es funktioniert. Ich würde gerne eine endgültige Erklärung sehen, die genau beschreibt, was mit den verschiedenen SDKS bricht und was funktioniert und warum.
Scott Biggs
Es scheint ein Fehler zu sein, da das Projekt mit diesem Fehler kompiliert und in Ordnung erstellt wird.
LMaker
34

Aktualisieren Sie alle Ihre Bibliotheksversionen auf 26.1.0(auf die neueste Version) und fügen Sie hinzu:

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

Wenn Sie Android Studio 3.0.0 und höher verwenden, verwenden Sie

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

Wenn Sie Ihr Projekt synchronisieren, wird der Fehler automatisch behoben, da er ?attr/actionBarSizeTeil der v4Bibliothek ist.

Kunwar Ajeet Singh Rajput
quelle
Geben
Ich musste ändern: Implementierung 'com.android.support:support-v4:26.1.0', um 'com.android.support:support-v4:26.1.0' zu kompilieren
Louis Parkin
1
Verwenden Sie implementationstatt compilejetzt.
Suragch
Ich denke, diese Antwort sollte nicht die ausgewählte Antwort sein. Weil es Sie zwingt, die support-v4-Bibliothek zu verwenden, wenn Sie nicht müssen. Sie können Sid und Victoria Klimovas Antwort ist die beste Antwort, Sie können vermeiden, unnötige Bibliothek in Ihrem Projekt leicht zu verwenden ...
Evren Yurtesen
Diese Antwort hat mir nicht einmal geholfen. Sids Antwort hilft, aber ich verstehe nicht, warum ich ein android:Präfix benötige, wenn ich bereits einen androidNamespace hinzugefügt xmlns:android="http://schemas.android.com/apk/res/android"habe, weiß jemand Bescheid?
user1209216
28

Wechseln Sie in der Projektverzeichnishierarchie "Android" zu "Projekt". Löschen Sie dann einen Ordner ".idea / library", nur "library". Wählen Sie eine Option aus dem Menü "Datei -> Caches ungültig machen / neu starten ... -> Ungültig machen und neu starten".

Oleh Kholiavchuk
quelle
3
Das hat auch bei mir funktioniert. Aber neugierig, warum. Was genau macht "Caches ungültig machen / neu starten"?
Anil Gorthy
Vielen Dank. Es funktionierte für mich mitcom.android.support:support-v4:27.1.1
Arash
11

Guten Tag, ich weiß, das ist etwas spät.

Aber ich bin auch auf dieses gestoßen, als ich auf Android Studio 3.0 aktualisiert habe

Ich habe mich verändert

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

zu

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

Hoffe es kann jemandem helfen.

Chris Palma
quelle
support_library = '27 .1.1 'to support_library = '27 .1.0' hat bei mir funktioniert. Ich bin mir nicht sicher, warum das Downgrade behoben wurde.
Der Tokenizer
4

Dies ist, was ich getan habe, um genau das gleiche Problem zu beheben. 1. Gehen Sie zum SDK-Manager. 2. Überprüfen Sie Android API 27 und Android 8.0 (Oreo). 3. Klicken Sie auf "Übernehmen", um diese SDKs herunterzuladen und zu installieren. 4. Ändern Sie in build.gradle die 'buildToolsVersion "26.0.1"' in 'buildToolsVersion "26.0.2". und mache eine Gradle-Synchronisation.

Hoffe, dies kann helfen, Ihr Problem zu beheben.

Baoqiang Yan
quelle
3

Ihre buildToolsVersion-Version unterscheidet sich von der Version in Abhängigkeiten (z. B. buildToolsVersion ist 27.0.0, aber die Implementierung 'com.android.support:support-v4:27.0.1'). Mach sie gleich.

Andrew Glukhoff
quelle
2

mein Problem gelöst , indem compileSdkVersionund targetSdkVersionvon 26zur letzten Version 27, u muß auch ur ein Upgrade dependenciesauf 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'
}

hoffe das löst auch dein problem :)

IRvanFauziE
quelle
1

Versuchen Sie, dies in Ihre build.gradle (App) -Abhängigkeiten einzufügen:

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

Das hat funktioniert.

Ich habe die Kompilierungs- und Unterstützungs-Lib-Versionen von 26.xx auf 27.xx aktualisiert

Mahi
quelle
1

Ich habe alle Antworten hier und so viele andere von vielen Orten aus ausprobiert, aber nur die folgenden Techniken haben für mich funktioniert. Der einfache Weg ist, brauchen Sie nur zu schließen , um das Projekt dann importieren das gleiche Projekt als Gradle Projekt Oder Sie Projektstruktur gehen kann -> Projekt -> Änderung Gradel Plugin = 4.4 und Android Plugin - Version = 3.1.4. Beide oben genannten Methoden funktionieren.

Hinweis: Diese Versionen (4.4, 3.1.4) sind die neuesten, wenn ich diese Antwort schreibe. Verwenden Sie stattdessen die neueste Version.

Biswajit
quelle
0

Vielleicht haben Sie die Version von gradle aktualisiert. Wenn meine Gradle-Version 4.4 und die Plugin-Version 3.1.1 ist, ist es in Ordnung.

Geben Sie hier die Bildbeschreibung ein

Evan
quelle
0

diese Arbeit:

Löschen Sie alle Dateien in $ HOME / .gradle / caches / transforms-1 / files-1.1 / appcompat-v7-27.1.1.aar

Besser
quelle
0

Alle Support Library- Versionen wurden auf die neueste Version geändert 27.1.1und der Fehler wurde behoben.

Darush
quelle
0

Bitte ersetzen Sie Android Support-Bibliotheken.

von

27.1.1

zu

28.0.0-alpha3

und ersetzen Sie 27 bis 28 für folgende Fälle:

compileSdkVersion 28
buildToolsVersion "28.0.0"
targetSdkVersion 28

Dadurch wird das Problem behoben.

Ahamadullah Saikat
quelle