주어진 이름과 일치하는 리소스를 찾을 수 없습니다 : attr 'android : keyboardNavigationCluster'. 지원 라이브러리 26.0.0으로 업데이트 할 때


215

최신 지원 라이브러리 버전 26.0.0 ( https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0 )으로 업데이트하는 동안이 문제가 발생했습니다 .

오류 : (18, 21) 주어진 이름과 일치하는 리소스를 찾을 수 없습니다 : attr 'android : keyboardNavigationCluster'.

/.../app/build/intermediates/res/merged/beta/debug/values-v26/values-v26.xml
Error:(15, 21) No resource found that matches the given name: attr 'android:keyboardNavigationCluster'.
Error:(18, 21) No resource found that matches the given name: attr 'android:keyboardNavigationCluster'.
Error:(15, 21) No resource found that matches the given name: attr 'android:keyboardNavigationCluster'.
Error:(18, 21) No resource found that matches the given name: attr 'android:keyboardNavigationCluster'.
Error:Execution failed for task ':app:processBetaDebugResources'.

com.android.ide.common.process.ProcessException : aapt를 실행하지 못했습니다

파일은 지원 라이브러리에서 가져옵니다.

<style name="Base.V26.Widget.AppCompat.Toolbar" parent="Base.V7.Widget.AppCompat.Toolbar">
    <item name="android:touchscreenBlocksFocus">true</item>
    <item name="android:keyboardNavigationCluster">true</item>
</style>

우리는 다음 버전을 사용하고 있습니다 :

ext.COMPILE_SDK_VERSION = 26
ext.BUILD_TOOLS_VERSION = "26.0.1"

ext.MIN_SDK_VERSION = 17
ext.TARGET_SDK_VERSION = 26
ext.ANDROID_SUPPORT_LIBRARY_VERSION = "26.0.0"
ext.GOOGLE_PLAY_SERVICES_LIBRARY_VERSION = "11.0.2"

compile 'com.android.support:appcompat-v7:' + ANDROID_SUPPORT_LIBRARY_VERSION
compile 'com.android.support:design:' + ANDROID_SUPPORT_LIBRARY_VERSION
compile 'com.android.support:recyclerview-v7:' + ANDROID_SUPPORT_LIBRARY_VERSION

어떤 아이디어?


5
최신 릴리스 (26.0.1)에서는 여전히 문제가 남아 있습니다. developer.android.com/topic/libraries/support-library/…
Alécio Carvalho

답변:


314

gradle에서 SDK 버전 및 도구를 업데이트하여 해결할 수있었습니다. compileSdkVersion 26 buildToolsVersion "26.0.1"

support library 26.0.1 https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-1


4
이것은 나를 위해 작동하지 않았습니다. Google Play 서비스를 11.2로 업그레이드해야했는데 위의 오류가 발생하여 답변이 도움이되지 않았습니다. 또한 모든 지원 항목을 26.0.1로 업그레이드했지만 여전히 운이 없습니다. 다른 아이디어가 있습니까?
Nandor Poka

그러나 26으로 업데이트하면 다른 많은 것들에도 큰 영향을 미칩니다. Android 8.0에 적합한 채널을 만들 때까지 알림이 작동하지 않는 것을 포함합니까?
Patric

5
@patric 컴파일 SDK는 SDK를 대상으로하지 않습니다.
XH6 사용자

이 방법으로 문제가 해결되지 않으면 아래 Sam의 답변을 확인하십시오.
베니

2
비즈니스 요구 사항으로 인해 compileSdkVersion을 25에서 업데이트하지 않으려면 어떻게해야합니까? 이것을 제거하는 방법?
binaryKarmic

53

Compile SDK 버전 변경 :

compileSdkVersion 26

빌드 도구 버전 :

buildToolsVersion "26.0.1"

대상 SDK 버전 :

targetSdkVersion 26

종속성 :

compile 'com.android.support:appcompat-v7:26+'
compile 'com.android.support:design:26+'
compile 'com.android.support:recyclerview-v7:26+'
compile 'com.android.support:cardview-v7:26+'

동기화 Gradle.


2
경고 받기 : 버전 번호에서 +를 사용하지 마십시오.
Qadir Hussain

2
이것은 나를 위해 일했습니다. 경고를 제거하기 위해 모두 제거 +
Qadir Hussain

2
+를 사용하지 않으면 재현 가능한 빌드를 얻고 종속성을 완전히 제어 할 수 있습니다. 당신은 당신의 앱이 라이브러리를 조용히 업그레이드했기 때문에 새로운 빌드 후에 버그가 발생하는 것을 원하지 않습니다.
Snicolas

1
이 기능을 사용하기 targetSdkVersion위해 를 업데이트 할 필요는 없습니다 . 이 값을 26으로 설정하면 다른 의미가 있습니다. 즉, 앱이 Android 8.0과 호환되도록 만들어야합니다.
ataulm

어떤 파일에 난 당신이 @ataulm 안내 할 수있는이 일을 추가해야합니다
라비 메타에게

35

나는 변화를 가지고 compileSdkVersion = 26buildToolsVersion = '26.0.1'내 종속성 모두 build.gradle파일


2
API는 "com.android.support:appcompat-v7:$ANDROID_COMPATIBILITY_VERSION"당신은 모든 버전 번호에 대한 gradle.properties에 상수를 사용하고 build.gradle 파일에 사용한다
Snicolas

13

내 반응 네이티브 프로젝트에서이 오류는에서 발생합니다 react-native-fbsdk. react-native-fbsdk/android/build.gradle다음을 업데이트하면 문제가 해결됩니다.

compileSdkVersion 26
buildToolsVersion "26.0.1"

7
루트 build.gradle에 아래를 추가하면 모듈의 build.gradle 파일을 편집 할 필요가 없습니다.subprojects { afterEvaluate {project -> if (project.hasProperty("android")) { android { compileSdkVersion 26 buildToolsVersion '26.0.1' } } } }
Yalamber

9

나는이 똑같은 오류를 겪었고 내가 잘못하고있는 것을 찾으려고 노력하면서 Googling이었다. Gradle 4.0에서 Android Studio preview 3.0, canary 채널에 이르기까지 모든 것을 시도했습니다.

온라인에서 답을 찾지 못했습니다. 결국 실수로 수정 ​​한 표준 Dev Android Studio 및 2.3.3 Gradle로 돌아갈 수있었습니다. :)

라이브러리 프로젝트 업데이트에 중점을 두어 라이브러리 프로젝트에 중첩 된 사용되지 않는 하위 모듈 (데모 앱)에서 오류가 발생했다는 사실을 알지 못했습니다. 26 빌드 도구 및 26+ 디자인 및 지원 라이브러리와 일치하도록 하위 모듈을 업데이트하면 문제가 해결되었습니다.

그것이 당신이보고있는 것인지 확실하지 않지만 개인적으로 나는 다시 릴리스하기 위해 lib를 업데이트하고 있었기 때문에 샘플 앱 모듈에 신경 쓰지 않았으며 오류는 내가 만 만지는 26 SDK와 관련이있는 것으로 보입니다. lib 모듈은 다른 모듈을 확인하려고하지 않았습니다. 그래서 그것은 저에게 모든 문제였습니다. 잘하면 그것은 당신도 고쳐줍니다. 2 개의 라이브러리 프로젝트 에서이 오류가 발생했으며 두 가지 모두에서 수정되었습니다.

어느 쪽이든 행운을 빕니다. 그래도 문제가 해결되지 않으면 공유 한 내용을 공유하십시오. BTW 26.0.01 빌드 도구와 26.1.0 디자인 및 지원은 결국 26.0.1에서도 잘 작동했지만 결국 끝났습니다.


실제로 문제를 해결합니다 (여러 모듈이있는 경우)
D. Sergeev

8

나는이 정확한 오류를했고 나는 나의 실현 compileSdkVersion에 설정 한 25내가 buildToolsVersion설정 하였다"26.0.1" .

난 그냥 변경 그래서 compileSdkVersion26 와 Gradle을을 동기화. 그것은 나를 위해 문제를 해결했습니다.

편집 : 내 targetSDKVersion도 설정26


8

react-native-youtube 및 react-native-orientation에 대해 비슷한 오류가 있습니다.

해당 프로젝트의 build.gradle을 사용 compileSdkVersion 23하지만 Feature : android : keyboardNavigationCluster가 api 26(Android 8) 이후에 추가 되었다는 것을 알았습니다 .

어떻게 고칠까요?

이 문제를 쉽게 해결하는 한 가지 방법은 /android/build.gradle을 편집하고 (!!! NOT /android/app/build.gradle) 파일 하단에 해당 코드를 추가하는 것입니다.

이를 통해 하위 모듈에서 SDK 및 BuildTool-Version을 강제로 사용할 수 있습니다.

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 27
                buildToolsVersion "27.0.2"
            }
        }
    }
}

7

또한이 문제에 직면하여 두 가지만 변경해야합니다.

파일 이름 : android / build.gradle 아래 코드에서 언급하십시오.

subprojects {
   afterEvaluate { 
     project -> if (project.hasProperty("android")) { 
       android { 
        compileSdkVersion 26 buildToolsVersion '26.0.2' 
       } 
      }
    } 
}

파일 이름 : android / app / build.gradle 다음과 같이 compliesdk 버전과 buildToolVersion을 변경하십시오.

compileSdkVersion 26 buildToolsVersion "26.0.2"

그리고

dependencies {
    compile 'com.android.support:appcompat-v7:26.0.2'
}

7

Ionic 2 프로젝트와 동일한 문제가 있었지만 문제를 해결하기 위해해야 ​​할 일은

  • "ionic_project_folder / platforms / android / project.properties"를여십시오.
  • 변경 대상 = 안드로이드-25은대상 = 안드로이드-26
  • 운영 ionic build --release android

이것이 누군가를 돕기를 바랍니다!


내 프로젝트가로 변경 target=android-26되었지만 여전히이 오류가 표시됩니다.
Yuyang He

6
//Adding this to the root build.gradle solved my problem, thanks @Yalamber
subprojects {
        afterEvaluate { project ->
            if (project.hasProperty("android")) {
                android {
                    compileSdkVersion 26
                    buildToolsVersion '26.0.2'
                }
            }
        }
    }

답변에 대한 이해를 돕기 위해 더 많은 정보를 코드와 공유 할 수 있습니다.
Prags December

일반적으로 일부 익명 코드 행을 게시하는 대신 솔루션을 설명하는 것이 좋습니다. 당신이 읽을 수있는 내가 좋은 답변 쓰기 어떻게 도하고, 전체 코드 기반의 답변을 설명하면서
안 팜에게

1
감사합니다! 가장 좋은 답변입니다. 기본적으로 프로젝트 종속성 (node_modules 프로젝트)은 SDK 버전이 다릅니다. 이 코드를 루트 수준 build.gradle에 추가하면 이러한 모든 종속성이 지정된 SDK 버전을 사용하고 프로젝트를 빌드 할 수 있습니다. : D
Nigh7Sh4de

4

android studio를 3.0으로 업데이트 한 후이 오류가 발생하면 gradle 속성을 업데이트하면이 문제가 해결 된 설정입니다.

compileSdkVersion 26

targetSdkVersion 26

buildToolsVersion '26.0.2'

26.0.2나를 위해 버전 고정 된 것들을 빌드하십시오.
Karl Taylor

3

프로젝트 app/build.gradle를 업데이트 하여

compileSDkVersion 26
buildToolsVersion '26.0.1'

그러나 실제로 react-native-fbsdk패키지에 문제가있었습니다 . 에서 동일한 설정을 변경해야했습니다 node_modules/react-native-fbsdk/android/build.gradle.


3

android studio
에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하십시오 (Cordova 프로젝트가 있었기 때문에 CordovaLib와 android가 있었으므로 내 경우에는 android를 선택했습니다).

  1. 모듈 설정 열기를 선택하십시오
  2. 팝업되는 프로젝트 구조 모달에서 측면 패널의 모듈 섹션에서 프로젝트를 선택하십시오 (필자의 경우 안드로이드에서 다시)
  3. 종속성 탭을 클릭하십시오
  4. 오른쪽 상단의 녹색 더하기 버튼을 클릭하십시오
  5. 라이브러리 의존성 선택
  6. 드롭 다운에서 app-compat-v7을 선택하십시오.
  7. 프로젝트 정리 및 재 구축

이것은 모든 파일을 수동으로 편집하는 것보다이 문제를 해결하는 훨씬 쉬운 방법입니다.
Robert Liberatore

2

나는 최근에 이것을 치고 그것이 어디에서 왔는지 기억합니다. Xamarin.Android. * 버전과 설치된 Android SDK 버전이 일치하지 않습니다.

현재 VS2017 15.5.3nuGet 새 프로젝트 기본값 Xamarin.Android.*입니다 25.4.0.2기본 VS 안드로이드 SDK 패키지 다음과 같다 크로스 플랫폼 개발을 위해 설치 :

  • 안드로이드 7.1-누가
    • 안드로이드 SDK 플랫폼 25
    • Google API Intel x86 Atom 시스템 이미지

당신이 당신에게 해결책 nuGet를 업그레이드 한 경우 Xamarin.Android.*26.1.0.1당신은 안드로이드 SDK의 추적을 설치해야합니다 :

  • 안드로이드 8.0-Oreo
    • 안드로이드 SDK 플랫폼 26
    • Google API Intel x86 Atom 시스템 이미지

2

PhoneGap 프로젝트 (Android studio 3.0.1) 중 하나와 동일한 문제에 직면했습니다. 이 문제를 해결하기 위해 다음 단계

1) 프로젝트 이름 (내 경우 안드로이드)을 마우스 오른쪽 버튼으로 클릭하고 "모듈 설정 열기"를 선택하십시오

2) 모듈 선택 (android 및 CordovaLib)

3) 상단의 속성을 클릭하십시오

4) Compile SDK 버전 선택 (API 26 : Android 8.0 선택)

5) 빌드 도구 버전을 선택하십시오 (26.0.2를 선택했습니다)

6) 소스 호환성 (1.6)

7) 대상 호환성 (1.6)

확인을 클릭하고 프로젝트를 다시 빌드하십시오.

다음 링크는 내가 수행 한 단계에 대한 설정을 보여줍니다.

https://app.box.com/s/o11xc8dy0c2c7elsaoppa0kwe1d94ogh https://app.box.com/s/ofdcg0a8n0zalumvpyju58he402ag1th


2

atst 'android : keyboardNavigationCluster'라는 주어진 이름과 일치하는 리소스를 찾을 수 없음의 해결책을 찾았습니다. 지원 라이브러리 26.0.0으로 업데이트 할 때

Build.gradle 에서이 코드를 그냥 Chage

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '26.0.1'
            }
        }
    }
}

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion '25.2.0'
            }
        }
    }
}

2

react-native-fbsdk를 컴파일 할 때이 문제가 발생했습니다.

나는 변화에 의해이 문제를 해결 build.gradlereact-native-fbsdk

...에서

compile('com.facebook.android:facebook-android-sdk:4.+')

compile('com.facebook.android:facebook-android-sdk:4.28.0')

1

이 문제는 컴파일을 위해 버전 26이 필요한 라이브러리 중 하나 때문에 발생했습니다.

targetSdkVersion을 26으로 설정하면 다른 문제가 발생하며 Oreo 플랫폼에 맞게 앱을 조정해야합니다. 이것이 모두에게 올바른 해결책은 아닙니다.

그냥을 compileSdkVersion to 26하고 buildToolsVersion to 26.0.2나를 위해 일했습니다.

26.1.0 이상을 사용하려면 모든 지원 라이브러리를 업데이트해야합니다 .



1

build.gradle 파일을 약간 변경하여이 문제를 해결했습니다.

루트 build.gradle의 변경 사항은 다음과 같습니다.

subprojects {
   afterEvaluate { 
     project -> if (project.hasProperty("android")) { 
       android { 
        compileSdkVersion 26 
        buildToolsVersion '26.0.1' 
       } 
      }
    } 
}

build.gradle의 변경 사항은 다음과 같습니다.

compileSdkVersion 26 
buildToolsVersion "26.0.1"

dependencies {
    compile 'com.android.support:appcompat-v7:26.0.1'
}

1

기본 스크립트를 사용하고이 문제에 직면 한 사람은 다음을 추가 할 수 있습니다.

compileSdkVersion 26
buildToolsVersion '26.0.1'

App_Resources / Android / app.gradle의 (아래 android {)

그런 다음 실행 tns platform remove androidtns build android프로젝트 루트입니다.


0

개발 환경에 Android SDK 8.0이 있는지 확인하십시오. MAC에서 동일한 문제가 발생했으며 SDK 8.0 및 도구를 설치하면 문제가 해결되었습니다. Windows에서 동일한 문제가 있습니다. 지금 SDK를 다운로드하고 있습니다.


0

나는 이온과 같은 문제가 있었다.

cordova platform remove android
cordova platform add android@6.4.0

그리고 platform / android / projet.properties에서 교체하십시오.

cordova.system.library.1=com.android.support:support-v4+

cordova.system.library.1=com.android.support:support-v4:26+

0

이를 위해서는 아래의 작업을 수행해야합니다. 1. 프로젝트 클릭을 마우스 오른쪽 버튼으로 클릭하십시오.

2. 모듈 설정-> 속성 탭에서-> 컴파일 SDK를 변경하고 도구 버전을 26,26.0.0으로 변경하십시오.

3. 확인을 클릭하십시오.

한 시간 후에 시도해 보았습니다.



-1

프로젝트를 지우고 다시 빌드하십시오.

./gradlew  app:clean app:assembleDebug

그러나 targetSdkVersion 또는 compileSdkVersion이 25 인 경우 작동하지 않습니다.

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