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'

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.


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.



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


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.


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.


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.


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


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

1

Das hat funktioniert.

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


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.


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


0

diese Arbeit:

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



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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.