buildToolsVersion '26 .0.2 '에 대해 Android Studio를 2.3에서 3.0으로 업데이트 한 후'? attr / actionBarSize '기호를 확인할 수 없습니다.


119

Android Studio를 2.3에서 3.0으로 업데이트 한 후 buildToolsVersion26.0.0에서 26.0.2로 변경 한 후이 오류가 발생합니다.

Cannot resolve symbol '?attr/actionBarSize

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

종속성 :

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

아마도 당신은 hava가 gradle의 버전을 업그레이드했을 것입니다.
Evan

답변:


243

도움이되지 않았지만 변경 :

?attr/actionBarSize에이 ?android:attr/actionBarSize작업을했다.

실제로 몇 가지 버전의 버그입니다. 수정하지 않더라도 Android는 런타임에 자동으로 수정합니다.


20
나는 ?android:attr/actionBarSizeapi 21과 만 호환 가능 하다고 생각 ?attr/actionBarSize하며 Android Studio를 보려면 사전 21 sdk가 필요합니다. 저에게 다른 문제는 compileSdk와 지원 라이브러리가 동일한 메이저 버전 번호 (제 경우 27)를 가지는지 확인하는 것이 었습니다.
Daniel Wilson

2
흠, 약간 마법처럼 보이지만 작동합니다. 다양한 sdk에서 무엇이 중단되고 무엇이 작동하며 왜 작동 하는지를 정확하게 설명하는 명확한 설명을보고 싶습니다.
SMBiggs

이 오류로 프로젝트가 컴파일되고 빌드되기 때문에 버그처럼 보입니다.
LMaker

34

모든 라이브러리 버전을 26.1.0최신 버전으로 업데이트하고 다음 을 추가하십시오.

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

Android Studio 3.0.0 이상을 사용하는 경우

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

프로젝트를 동기화하면 라이브러리의 ?attr/actionBarSize일부 이므로 오류가 자동으로 해결됩니다 v4.


당신이 얘기하는 라이브러리 버전 지정
D_Alpha

나는 변경해야했다 : 'com.android.support:support-v4:26.1.0'구현 'com.android.support:support-v4:26.1.0'컴파일
Louis Parkin

1
지금 implementation대신 사용하십시오 compile.
Suragch

이 답변이 선택된 답변이 아니어야한다고 생각합니다. 필요하지 않을 때 support-v4 라이브러리를 사용하도록 강요하기 때문입니다. 당신은 SID 수 있으며, 빅토리아 Klimova의 대답은, 당신이 ... 쉽게 프로젝트에서 불필요한 라이브러리를 사용하지 수있는 최선의 대답이다
EVREN Yurtesen

이 대답은 저에게도 도움이되지 않았습니다. Sid의 대답이 도움이되지만 android:이미 android네임 스페이스를 추가 했는데 접두사가 필요한 이유를 이해할 수 없습니다 xmlns:android="http://schemas.android.com/apk/res/android".
user1209216 apr

28

프로젝트 디렉토리 계층에서 "Android"를 "Project"로 전환합니다. 그런 다음 ".idea / libraries"폴더를 삭제하고 "libraries"만 삭제합니다. "파일-> 캐시 무효화 / 다시 시작 ...-> 무효화 및 다시 시작"메뉴에서 옵션을 선택합니다.


3
이것은 나에게도 효과적이었습니다. 하지만 왜 그랬는지 궁금합니다. "캐시 무효화 / 재시작"은 정확히 무엇을합니까?
Anil Gorthy

감사. 그것은 나를 위해 일했습니다com.android.support:support-v4:27.1.1
Arash

11

좋은 하루 되세요, 조금 늦었 네요.

하지만 Android Studio 3.0으로 업데이트했을 때 이것도 만났습니다.

내가 한 것은 내가 변한 것입니다

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

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

누군가를 도울 수 있기를 바랍니다.


support_library = '27 .1.1 'to support_library = '27 .1.0'이 저에게 효과적이었습니다. 왜 다운 그레이드가 수정되었는지 모르겠습니다.
The Tokenizer

4

이것은 정확히 같은 문제를 해결하기 위해 한 것입니다. 1. SDK 관리자로 이동합니다. 2. Android API 27 및 Android 8.0 (Oreo)을 확인합니다. 3. "적용"을 클릭하여 해당 SDK를 다운로드하고 설치합니다. 4. build.gradle에서 'buildToolsVersion "26.0.1"'을 'buildToolsVersion "26.0.2"'로 변경합니다. 그리고 gradle 동기화를 수행하십시오.

이것이 문제를 해결하는 데 도움이되기를 바랍니다.


3

buildToolsVersion 버전이 종속성 버전과 다릅니다 (예 : buildToolsVersion은 27.0.0이지만 구현 'com.android.support:support-v4:27.0.1'). 동일하게 만드십시오.


2

내 문제는 변경 compileSdkVersion하고 마지막 버전 targetSdkVersion에서 해결했으며 UR 을 .2627dependencies27

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

이것이 당신의 문제도 해결하기를 바랍니다 :)


1

build.gradle (app) 종속성에 다음을 추가하십시오.

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

이것은 효과가 있었다.

컴파일 및 지원 lib 버전을 26.xx에서 27.xx로 업데이트했습니다.


1

나는 여기에 모든 답변을 시도했고 많은 곳에서 많은 다른 사람들을 시도했지만 아래 기술만이 나를 위해 일했습니다. 간단한 방법은 프로젝트 를 닫은 다음 Gradle 프로젝트 와 동일한 프로젝트를 가져 오거나 프로젝트 구조-> 프로젝트-> Gradel 플러그인 = 4.4 및 Android 플러그인 버전 = 3.1.4로 이동할 수 있습니다. 위의 두 방법 모두 작동합니다.

참고 : 이 버전 (4.4, 3.1.4) 은이 답변을 작성할 때 최신 버전입니다.이 대신 최신 버전을 사용하십시오.


0

아마도 당신은 hava가 gradle의 버전을 업그레이드했을 것입니다. 내 gradle 버전이 4.4이고 플러그인 버전이 3.1.1이면 괜찮습니다.

여기에 이미지 설명 입력


0

이 일:

$ HOME / .gradle / caches / transforms-1 / files-1.1 / appcompat-v7-27.1.1.aar의 모든 파일을 삭제합니다.



0

안드로이드 지원 라이브러리를 교체하십시오.

...에서

27.1.1

28.0.0-alpha3

다음과 같은 경우 27에서 28로 교체하십시오.

compileSdkVersion 28
buildToolsVersion "28.0.0"
targetSdkVersion 28

이렇게하면 문제가 해결됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.