Không thể giải quyết biểu tượng '? Attr / actionBarSize' sau khi cập nhật Android Studio từ 2.3 lên 3.0 cho buildToolsVersion '26 .0.2 '


119

Sau khi cập nhật Android Studio từ 2.3 lên 3.0, tôi đã thay đổi buildToolsVersiontừ 26.0.0 thành 26.0.2 và sau đó tôi gặp lỗi này:

Cannot resolve symbol '?attr/actionBarSize

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

Sự phụ thuộc:

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

Có thể bạn đã nâng cấp phiên bản gradle.
Evan

Câu trả lời:


243

Không có gì giúp được, ngoài việc thay đổi:

?attr/actionBarSizeđể ?android:attr/actionBarSizethực hiện công việc.

Đó thực sự là một lỗi trong một vài phiên bản. Ngay cả khi bạn không sửa nó, Android sẽ tự động sửa nó trong thời gian chạy.


20
Tôi nghĩ ?android:attr/actionBarSizechỉ tương thích với api 21, ?attr/actionBarSizeyêu cầu cài đặt sdk trước 21 cho Android Studio để xem nó. Vấn đề khác đối với tôi là đảm bảo compileSdk và hỗ trợ lib có cùng số phiên bản chính (trong trường hợp của tôi là 27)
Daniel Wilson

2
Hmmm, có vẻ hơi kỳ diệu, nhưng nó hoạt động. Tôi muốn xem một lời giải thích rõ ràng mô tả chính xác những gì phá vỡ với các sdks khác nhau và những gì hoạt động và tại sao.
SMBiggs

nó có vẻ giống như một lỗi vì dự án biên dịch và xây dựng ok với lỗi này.
LMaker

34

Cập nhật tất cả các phiên bản thư viện của bạn lên 26.1.0(lên phiên bản mới nhất) và đồng thời thêm:

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

nếu bạn đang sử dụng Android Studio 3.0.0 trở lên thì hãy sử dụng

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

Đồng bộ hóa dự án của bạn và lỗi sẽ tự động giải quyết vì ?attr/actionBarSizelà một phần của v4thư viện.


xác định những thư viện phiên bản bạn đang nói về
D_Alpha

Tôi đã phải thay đổi: implement 'com.android.support:support-v4:26.1.0' thành 'com.android.support:support-v4:26.1.0'
Louis Parkin

1
Sử dụng implementationthay vì compilengay bây giờ.
Suragch

Tôi nghĩ câu trả lời này không nên là câu trả lời được chọn. Bởi vì nó buộc bạn phải sử dụng thư viện support-v4 khi không cần thiết. Bạn có thể Sid và trả lời Victoria Klimova là câu trả lời tốt nhất, bạn có thể tránh sử dụng thư viện không cần thiết trong dự án của bạn một cách dễ dàng ...
Evren Yurtesen

Câu trả lời này thậm chí không giúp tôi. Câu trả lời của Sid hữu ích, nhưng tôi không hiểu tại sao tôi cần android:tiền tố khi tôi đã thêm androidkhông gian tên, xmlns:android="http://schemas.android.com/apk/res/android"có ai biết không?
user1209216

28

Trong phân cấp thư mục dự án chuyển "Android" thành "Dự án". Sau đó xóa một thư mục ".idea / thư viện", chỉ "thư viện". Chọn một tùy chọn từ menu "Tệp -> Vô hiệu hóa bộ nhớ cache / Khởi động lại ... -> Vô hiệu hóa và Khởi động lại".


3
Điều này cũng làm việc cho tôi. Nhưng tò mò, tại sao nó đã làm. Chính xác thì "Invalidate Caches / Restart" làm gì?
Anil Gorthy, 23:18

Cảm ơn. Nó làm việc cho tôi vớicom.android.support:support-v4:27.1.1
Arash

11

Một ngày tốt lành, tôi biết điều này là một chút muộn.

nhưng tôi cũng gặp sự cố này khi cập nhật lên Android Studio 3.0

những gì tôi đã làm là tôi đã thay đổi

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

đến

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

Hy vọng nó có thể giúp ai đó.


support_library = '27 .1.1 'thành support_library = '27 .1.0' phù hợp với tôi. không chắc chắn tại sao hạ cấp được sửa.
The Tokenizer

4

Đây là những gì tôi đã làm để khắc phục chính xác vấn đề tương tự. 1. Chuyển đến trình quản lý SDK. 2. Kiểm tra Android API 27 và Android 8.0 (Oreo) 3. Nhấp vào "Áp dụng" để tải xuống và cài đặt các SDK đó. 4. Trong build.gradle, thay đổi 'buildToolsVersion "26.0.1"' thành 'buildToolsVersion "26.0.2"' và thực hiện đồng bộ hóa gradle.

Hy vọng điều này có thể giúp khắc phục sự cố của bạn.


3

Phiên bản buildToolsVersion của bạn khác với phiên bản trong các phần phụ thuộc (ví dụ: buildToolsVersion là 27.0.0 nhưng triển khai 'com.android.support:support-v4:27.0.1'). Làm cho chúng giống nhau.


2

vấn đề của tôi được giải quyết bằng cách thay đổi compileSdkVersiontargetSdkVersiontừ 26phiên bản cuối cùng 27, bạn cũng cần phải nâng cấp ur dependencieslên 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'
}

hy vọng điều này giải quyết được vấn đề của bạn quá :)


1

Cố gắng thêm cái này vào phần phụ thuộc build.gradle (ứng dụng) của bạn:

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

Điều này đã hiệu quả.

Tôi đã cập nhật phiên bản lib biên dịch và hỗ trợ từ 26.xx đến 27.xx


1

Tôi đã thử tất cả các câu trả lời ở đây và rất nhiều câu trả lời khác từ nhiều nơi nhưng chỉ những kỹ thuật dưới đây phù hợp với tôi. Cách đơn giản là bạn chỉ cần đóng dự án sau đó nhập dự án tương tự như một dự án Gradle Hoặc bạn có thể vào Cấu trúc dự án -> dự án -> thay đổi plugin Gradel = 4.4 và phiên bản plugin Android = 3.1.4. Cả hai phương pháp trên đều hoạt động.

Lưu ý: Các phiên bản này (4.4, 3.1.4) là mới nhất khi tôi viết câu trả lời này, vui lòng sử dụng phiên bản mới nhất thay vì các phiên bản này.


0

Có thể bạn đã nâng cấp phiên bản gradle. khi phiên bản gradle của tôi là 4.4 và phiên bản plugin là 3.1.1 thì không sao.

nhập mô tả hình ảnh ở đây


0

công việc này:

xóa tất cả tệp trong $ HOME / .gradle / caches / transforms-1 / files-1.1 / appcompat-v7-27.1.1.aar



0

vui lòng thay thế các thư viện hỗ trợ android.

từ

27.1.1

đến

28.0.0-alpha3

và thay thế 27 thành 28 cho các trường hợp sau:

compileSdkVersion 28
buildToolsVersion "28.0.0"
targetSdkVersion 28

điều này sẽ khắc phục sự cố.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.