BuildToolsVersion '26 .0.2 'için Android Studio 2.3'ten 3.0'a güncellendikten sonra'? Attr / actionBarSize 'sembolü çözülemiyor


119

Android Studio'yu 2.3'ten 3.0'a güncelledikten sonra buildToolsVersion26.0.0'dan 26.0.2'ye değiştirdim ve sonra şu hatayı alıyorum:

Cannot resolve symbol '?attr/actionBarSize

XML kodu:

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

Bağımlılıklar:

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

Belki gradle sürümünü yükseltmişsinizdir.
Evan

Yanıtlar:


243

Hiçbir şey yardımcı olmadı, ancak değişiyor:

?attr/actionBarSizeiçin ?android:attr/actionBarSizeiş yaptı.

Bu aslında birkaç versiyonda bir hata. Düzeltmeseniz bile, Android çalışma zamanında otomatik olarak düzeltir.


20
Bence ?android:attr/actionBarSizesadece api 21 ile uyumlu, ?attr/actionBarSizeAndroid Studio'nun görebilmesi için 21 öncesi SDK'nın kurulu olmasını gerektiriyor. Benim için diğer sorun, compileSdk ve destek kitaplarının aynı ana sürüm numarasına sahip olduğundan emin olmaktı (benim durumumda 27)
Daniel Wilson

2
Hmmm, biraz büyülü görünüyor ama işe yarıyor. Çeşitli sdk'lerden neyin koptuğunu ve neyin işe yaradığını ve nedenini tam olarak açıklayan kesin bir açıklama görmeyi çok isterim.
SMBiggs

bir hata gibi görünüyor çünkü proje bu hatayla derleniyor ve tamamlanıyor.
LMaker

34

Tüm kitaplık sürümlerinizi 26.1.0(en son sürüme) olarak güncelleyin ve ayrıca şunları ekleyin:

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

Android Studio 3.0.0 ve üstünü kullanıyorsanız

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

Projenizi senkronize edin ?attr/actionBarSize, v4kitaplığın bir parçası olduğu için hata otomatik olarak çözülür .


hangi kitaplık sürümünden bahsettiğinizi belirtin
D_Alpha

Değiştirmek zorunda kaldım: 'com.android.support:support-v4:26.1.0' uygulamasını derlemek için 'com.android.support:support-v4:26.1.0'
Louis Parkin

1
Şimdi implementationyerine kullanın compile.
Suragch

Bence bu cevap seçilen cevap olmamalı. Çünkü mecbur olmadığınızda sizi support-v4 kitaplığını kullanmaya zorluyor. Sid ve Victoria Klimova'nın cevabı en iyi cevap olabilir, projenizde gereksiz kütüphaneyi rahatlıkla kullanmaktan
kurtulabilirsiniz

Bu cevap bana yardımcı olmadı bile. Sid'in cevabı yardımcı oluyor, ancak ad alanını android:zaten ekledim, neden öneke ihtiyacım olduğunu anlamıyorum kimse biliyor mu? androidxmlns:android="http://schemas.android.com/apk/res/android"
user1209216

28

Proje dizini hiyerarşisinde "Android" i "Proje" olarak değiştirin. Sonra bir ".idea / libraries" klasörünü, yalnızca "libraries" klasörünü silin. "Dosya -> Önbellekleri Geçersiz Kıl / Yeniden Başlat ... -> Geçersiz Kıl ve Yeniden Başlat" menüsünden bir seçenek seçin.


3
Bu benim için de çalıştı. Ama merak ediyorum, neden yaptı. "Önbellekleri Geçersiz Kıl / Yeniden Başlat" tam olarak ne yapar?
Anil Gorthy

Teşekkürler. Benim için çalıştıcom.android.support:support-v4:27.1.1
Arash

11

İyi günler, bunun biraz geç olduğunu biliyorum.

ancak Android Studio 3.0'a güncellediğimde bununla da karşılaştım

yaptığım şey değişti

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

için

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

Umarım birine yardımcı olabilir.


support_library = '27 .1.1 'to support_library = '27 .1.0' benim için çalıştı. eski sürüme geçmenin neden düzeltildiğinden emin değilim.
The Tokenizer

4

Tam olarak aynı sorunu çözmek için yaptığım şey buydu. 1. SDK yöneticisine gidin. 2. Android API 27 ve Android 8.0'ı (Oreo) kontrol edin 3. Bu SDK'ları indirmek ve yüklemek için "Uygula" yı tıklayın 4. build.gradle'da "buildToolsVersion" 26.0.1 "'i" buildToolsVersion "26.0.2"' olarak değiştirin ve kademeli senkronizasyon yapın.

Bunun sorununuzu çözmenize yardımcı olabileceğini umuyoruz.


3

BuildToolsVersion sürümünüz, bağımlılıklardaki sürümden farklıdır (örneğin, buildToolsVersion 27.0.0, ancak uygulama 'com.android.support:support-v4:27.0.1'). Onları aynı yapın.


2

benim sorunum değiştirerek çözmüş compileSdkVersionve targetSdkVersiongelen 26son sürüme 27de u ur yükseltmeniz gerekir dependenciesiçin 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'
}

umarım bu da senin problemini çözer :)


1

Bunu build.gradle (uygulama) bağımlılıklarınıza eklemeyi deneyin:

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

Bu işe yaradı.

Derleme ve destek lib sürümlerini 26.xx'den 27.xx'e güncelledim


1

Buradaki tüm cevapları ve pek çok yerden pek çok cevabı denedim ama sadece aşağıdaki teknikler benim için çalıştı. Basit yol, projeyi kapatmanız ve ardından aynı projeyi bir Gradle projesiyle içe aktarmanız gerekir. Veya Proje yapısı -> proje -> Gradel eklentisini değiştir = 4.4 ve Android eklenti sürümü = 3.1.4'e gidebilirsiniz. Yukarıdaki yöntemlerin her ikisi de işe yarar.

Not: Bu cevabı yazdığımda bu sürümler (4.4, 3.1.4) en son sürümler, lütfen bunların yerine en son sürümü kullanın.


0

Belki gradle sürümünü yükseltmişsinizdir. gradle sürümüm 4.4 ve eklenti sürümü 3.1.1 olduğunda, sorun yok.

görüntü açıklamasını buraya girin


0

bu iş:

$ HOME / .gradle / caches / transforms-1 / files-1.1 / appcompat-v7-27.1.1.aar içindeki tüm dosyayı sil



0

lütfen android destek kitaplıklarını değiştirin.

itibaren

27.1.1

için

28.0.0-alpha3

ve aşağıdaki durumlarda 27 ile 28 arasında değiştirin:

compileSdkVersion 28
buildToolsVersion "28.0.0"
targetSdkVersion 28

bu sorunu çözecektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.