Tidak dapat menyelesaikan simbol '? Attr / actionBarSize' setelah memperbarui Android Studio dari 2.3 ke 3.0 untuk buildToolsVersion '26 .0.2 '


119

Setelah memperbarui Android Studio dari 2.3 ke 3.0 saya mengubah buildToolsVersiondari 26.0.0 menjadi 26.0.2 dan setelah itu saya mendapatkan kesalahan ini:

Cannot resolve symbol '?attr/actionBarSize

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

Dependensi:

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

Mungkin Anda telah mengupgrade versi gradle.
Evan

Jawaban:


243

Tidak ada yang membantu, selain mengubah:

?attr/actionBarSizeuntuk ?android:attr/actionBarSizemelakukan pekerjaan itu.

Itu sebenarnya bug dalam beberapa versi. Bahkan jika Anda tidak memperbaikinya, Android akan memperbaikinya secara otomatis saat runtime.


20
Saya rasa ?android:attr/actionBarSizehanya kompatibel dengan api 21, ?attr/actionBarSizemembutuhkan pra-21 sdk diinstal untuk Android Studio untuk melihatnya. Masalah lain bagi saya adalah memastikan compileSdk dan support libs memiliki nomor versi utama yang sama (27 dalam kasus saya)
Daniel Wilson

2
Hmmm, sepertinya sedikit ajaib, tapi berhasil. Saya ingin melihat penjelasan definitif yang menjelaskan dengan tepat apa yang putus dengan berbagai SDKS dan apa yang berhasil dan mengapa.
SMBiggs

Sepertinya bug karena proyek dikompilasi dan dibangun dengan baik dengan kesalahan ini.
LMaker

34

Perbarui semua versi perpustakaan Anda ke 26.1.0(ke versi terbaru) dan juga tambahkan:

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

jika Anda menggunakan Android Studio 3.0.0 dan yang lebih baru, gunakan

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

Sinkronkan proyek Anda dan kesalahan akan secara otomatis teratasi karena ?attr/actionBarSizemerupakan bagian dari v4perpustakaan.


tentukan versi library yang Anda bicarakan
D_Alpha

Saya harus mengubah: implementasi 'com.android.support:support-v4:26.1.0' untuk mengkompilasi 'com.android.support:support-v4:26.1.0'
Louis Parkin

1
Gunakan implementationalih-alih compilesekarang.
Suragch

Saya pikir jawaban ini seharusnya bukan jawaban yang dipilih. Karena itu memaksa Anda untuk menggunakan pustaka support-v4 saat Anda tidak perlu melakukannya. Anda dapat Jawaban Sid dan Victoria Klimova adalah jawaban terbaik, Anda dapat menghindari penggunaan perpustakaan yang tidak perlu dalam proyek Anda dengan mudah ...
Evren Yurtesen

Jawaban ini bahkan tidak membantu saya. Jawaban Sid membantu, tetapi saya tidak mengerti mengapa saya membutuhkan android:awalan ketika saya telah menambahkan androidnamespace xmlns:android="http://schemas.android.com/apk/res/android"apakah ada yang tahu?
pengguna1209216

28

Dalam hierarki direktori proyek, alihkan "Android" ke "Proyek". Kemudian hapus folder ".idea / libraries", hanya "libraries". Pilih opsi dari menu "File -> Invalidate Caches / Restart ... -> Invalidate and Restart".


3
Ini berhasil juga untuk saya. Tapi penasaran, kenapa begitu. Apa sebenarnya yang dilakukan "Invalidate Caches / Restart"?
Anil Gorthy

Terima kasih. Ini berhasil untuk saya dengancom.android.support:support-v4:27.1.1
Arash

11

Selamat siang, saya tahu ini agak terlambat.

tetapi saya juga menemukan yang ini, ketika saya memperbarui ke Android Studio 3.0

apa yang saya lakukan adalah saya berubah

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

untuk

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

Semoga bisa membantu seseorang.


support_library = '27 .1.1 'to support_library = '27 .1.0' berfungsi untuk saya. tidak yakin mengapa penurunan versi diperbaiki.
The Tokenizer

4

Inilah yang saya lakukan untuk memperbaiki masalah yang persis sama. 1. Buka manajer SDK. 2. Periksa Android API 27 dan Android 8.0 (Oreo) 3. Klik "Terapkan" untuk mengunduh dan menginstal SDK tersebut 4. Di build.gradle, ubah 'buildToolsVersion "26.0.1"' menjadi 'buildToolsVersion "26.0.2"' dan lakukan sinkronisasi gradle.

Semoga ini dapat membantu memperbaiki masalah Anda.


3

Versi buildToolsVersion Anda berbeda dengan versi dalam dependensi (misalnya buildToolsVersion adalah 27.0.0 tetapi implementasi 'com.android.support:support-v4:27.0.1'). Buat mereka sama.


2

masalah saya diselesaikan dengan mengubah compileSdkVersiondan targetSdkVersiondari 26ke versi terakhir 27, juga Anda perlu memutakhirkan Anda dependencieske 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'
}

semoga ini menyelesaikan masalahmu juga :)


1

Coba tambahkan ini di dependensi build.gradle (app) Anda:

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

Ini berhasil.

Saya telah memperbarui versi kompilasi dan dukungan lib dari 26.xx menjadi 27.xx


1

Saya mencoba semua jawaban di sini dan banyak jawaban lainnya dari banyak tempat tetapi hanya teknik di bawah ini yang berhasil untuk saya. Cara sederhananya adalah Anda hanya perlu menutup proyek lalu mengimpor proyek yang sama dengan proyek Gradle. Atau Anda dapat pergi ke Struktur proyek -> proyek -> ubah Gradel plugin = 4.4 dan Android plugin versi = 3.1.4. Kedua metode di atas bekerja.

Catatan: Versi ini (4.4, 3.1.4) adalah yang terbaru ketika saya menulis jawaban ini, harap gunakan versi terbaru daripada ini.


0

Mungkin Anda telah mengupgrade versi gradle. ketika versi gradle saya adalah 4.4 dan versi plugin adalah 3.1.1. Tidak apa-apa.

masukkan deskripsi gambar di sini


0

pekerjaan ini:

hapus semua file di $ HOME / .gradle / caches / transforms-1 / files-1.1 / appcompat-v7-27.1.1.aar



0

tolong ganti pustaka dukungan android.

dari

27.1.1

untuk

28.0.0-alpha3

dan ganti 27 menjadi 28 untuk kasus berikut:

compileSdkVersion 28
buildToolsVersion "28.0.0"
targetSdkVersion 28

ini akan memperbaiki masalah tersebut.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.