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'
Rahul Roshan
sumber
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.

Victoria Klimova
sumber
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.

Kunwar Ajeet Singh Rajput
sumber
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".

Oleh Kholiavchuk
sumber
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.

Chris Palma
sumber
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.

Baoqiang Yan
sumber
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.

Andrew Glukhoff
sumber
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 :)

IRvanFauziE
sumber
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'
}
petryk33.dll
sumber
1

Ini berhasil.

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

Mahi
sumber
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.

Biswajit
sumber
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

Evan
sumber
0

pekerjaan ini:

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

Lebih baik
sumber
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.

Ahamadullah Saikat
sumber