Không tìm thấy tài nguyên nào khớp với tên đã cho: attr 'android: keyboardNavlationCluster'. khi cập nhật lên Thư viện hỗ trợ 26.0.0


215

Tôi đã gặp sự cố này trong khi cập nhật lên Thư viện hỗ trợ mới nhất phiên bản 26.0.0 ( https://developer.android.com/topic/lologists/support-l Library / revutions.html # 26-0-0 ):

Lỗi: (18, 21) Không tìm thấy tài nguyên nào khớp với tên đã cho: attr 'android: keyboardNavlationCluster'.

/.../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: Không thể thực hiện aapt

Các tập tin từ thư viện hỗ trợ:

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

Chúng tôi đang sử dụng các phiên bản sau:

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

Có ý kiến ​​gì không?


5
nó vẫn là một vấn đề với bản phát hành mới nhất (26.0.1): developer.android.com/topic/lologists/support-l
Library / trộm

Câu trả lời:


314

Tôi đã có thể giải quyết nó bằng cách cập nhật phiên bản sdk và các công cụ trong lớp compileSdkVersion 26 buildToolsVersion "26.0.1"

support library 26.0.1 https://developer.android.com/topic/lologists/support-l Library / revutions.html # 26-0-1


4
Điều này đã không làm việc cho tôi. Tôi đã phải nâng cấp dịch vụ google play lên 11.2 và sau đó đã xảy ra lỗi và câu trả lời của bạn không có ích. Tôi cũng đã nâng cấp tất cả các công cụ hỗ trợ lên 26.0.1 nhưng vẫn không gặp may. Bạn có bất cứ ý tưởng khác?
Nandor Poka

Nhưng cập nhật lên 26 cũng sẽ có tác động lớn đến nhiều thứ khác. Bao gồm các thông báo không hoạt động cho đến khi Kênh thích hợp được tạo cho Android 8.0 phải không?
Patric

5
@patric SDK biên dịch của nó không nhắm mục tiêu SDK.
Người dùng XH6

Nếu giải pháp này không hiệu quả với bạn, hãy xem câu trả lời của Sam bên dưới.
Benny

2
Điều gì xảy ra nếu tôi không muốn cập nhật compileSdkVersion từ 25 do yêu cầu nghiệp vụ? Làm thế nào để thoát khỏi điều này?
binaryKarmic

53

Thay đổi phiên bản SDK biên dịch:

compileSdkVersion 26

Phiên bản công cụ xây dựng:

buildToolsVersion "26.0.1"

Phiên bản SDK mục tiêu:

targetSdkVersion 26

Phụ thuộc:

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

Đồng bộ hóa lớp.


2
nhận cảnh báo: tránh sử dụng + trong số phiên bản.
Qadir Hussain

2
Điều này làm việc cho tôi. xóa + khỏi tất cả để thoát khỏi các cảnh báo
Qadir Hussain

2
không sử dụng +, bạn muốn có các bản dựng có thể lặp lại và có toàn quyền kiểm soát các phụ thuộc của bạn. Bạn không muốn ứng dụng của mình bắt đầu bị lỗi sau khi xây dựng mới vì nó lặng lẽ nâng cấp lib ...
Snicolas

1
Bạn không cần phải cập nhật targetSdkVersionđể làm việc này. Đặt cài đặt đó thành 26 sẽ có ý nghĩa khác - tức là bạn phải làm cho ứng dụng của mình tương thích với Android 8.0.
ataulm

Trong tập tin nào tôi phải thêm những thứ này, bạn có thể hướng dẫn @ataulm
Ravi Mehta

35

Tôi đã phải thay đổi compileSdkVersion = 26buildToolsVersion = '26.0.1'trong tất cả build.gradlecác tập tin phụ thuộc của tôi


2
bạn nên sử dụng hằng số gradle.properies cho tất cả các số phiên bản của mình và sử dụng nó trong các tệp build.gradle của bạn: api "com.android.support:appcompat-v7:$ANDROID_COMPATITALITY_VERSION"
Snicolas

13

Trong dự án phản ứng gốc của tôi, lỗi này được tạo ra trong react-native-fbsdk. Cập nhật react-native-fbsdk/android/build.gradlenhư sau sửa lỗi.

compileSdkVersion 26
buildToolsVersion "26.0.1"

7
thêm bên dưới vào root build.gradle hoạt động không cần chỉnh sửa tệp build.gradle của mô-đunsubprojects { afterEvaluate {project -> if (project.hasProperty("android")) { android { compileSdkVersion 26 buildToolsVersion '26.0.1' } } } }
Yalamber

9

Tôi đã gặp lỗi chính xác như vậy và đã cố gắng tìm mọi thứ tôi đang làm sai vì đó là mã xây dựng giá trị-26 chứ không phải kiểu mà tôi cung cấp. Tôi đã thử mọi thứ từ Gradle 4.0 đến Android Studio preview 3.0 cho đến kênh canary, bạn đặt tên cho nó.

Tôi không bao giờ tìm thấy câu trả lời trực tuyến. Cuối cùng, tôi đã có thể quay lại Dev Android Studio tiêu chuẩn và 2.3.3 Gradle khi tôi vô tình sửa nó :).

Hóa ra tôi rất tập trung vào việc cập nhật dự án thư viện của mình đến nỗi tôi không nhận thấy rằng lỗi xảy ra từ một mô-đun phụ không sử dụng (ứng dụng demo) được lồng trong dự án thư viện của tôi. Khi tôi cập nhật mô-đun phụ để phù hợp với 26 công cụ xây dựng và 26+ thư viện thiết kế và hỗ trợ, vấn đề của tôi đã biến mất.

Không chắc đó có phải là những gì bạn đang nhìn thấy hay không, nhưng cá nhân tôi chỉ cập nhật lib để phát hành lại nên không quan tâm đến mô-đun ứng dụng mẫu và lỗi chắc chắn có liên quan đến 26 sdk mà tôi chỉ chạm vào mô-đun lib vì vậy không suy nghĩ để kiểm tra cái khác. Vì vậy, đó là vấn đề tất cả cùng với tôi. Hy vọng rằng sửa chữa bạn là tốt. Tôi đã có lỗi này trong 2 dự án thư viện và nó đã sửa nó trong cả hai.

Goodluck dù bằng cách nào và nếu điều này không giải quyết được vấn đề của bạn, vui lòng chia sẻ những gì đã làm. Các công cụ xây dựng BTW 26.0.01 và thiết kế và hỗ trợ 26.1.0 là nơi cuối cùng tôi sẽ đến, mặc dù 26.0.1 cũng hoạt động tốt.


Nó thực sự giải quyết được vấn đề (nếu bạn có một vài mô-đun)
D. Sergeev

8

Tôi đã có lỗi chính xác này và tôi nhận ra cái của tôi compileSdkVersionđã được đặt 25và cái của tôi buildToolsVersionđược đặt ở "26.0.1".

Vì vậy, tôi chỉ thay đổi compileSdkVersionthành 26và đồng bộ hóa Gradle. nó đã khắc phục vấn đề cho tôi

EDIT: của tôi targetSDKVersioncũng được đặt là26


8

Tôi đã có một lỗi tương tự đối với Reac -igen-youtube & Reac -igen-direction.

Hình dung ra rằng build.gradle của những Project đó sử dụng compileSdkVersion 23nhưng Tính năng: android: keyboardNavlationCluster đã được thêm vào từ api 26(android 8).

Vậy làm thế nào để khắc phục?

Một cách để khắc phục điều này một cách dễ dàng là chỉnh sửa /android/build.gradle (!!! KHÔNG /android/app/build.gradle) và thêm các mã đó vào cuối tệp.

Điều này cho phép bạn buộc SDK và BuildTool-Version mà các mô hình con của bạn sử dụng:

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

7

Tôi cũng gặp phải vấn đề này, bạn chỉ cần thực hiện 2 thay đổi:

Tên tệp: android / build.gradle đề cập đến mã bên dưới

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

Tên tệp: android / app / build.gradle thay đổi phiên bản tuân thủ của bạn và buildToolVersion như thế này:

compileSdkVersion 26 buildToolsVersion "26.0.2"

và trong

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

7

Tôi có cùng một vấn đề với dự án Ionic 2 của tôi, tất cả những gì tôi đã làm để giải quyết các vấn đề là

  • Mở "ionic_project_folder / platform / android / project.properIES"
  • Thay đổi mục tiêu = android-25 thành mục tiêu = android-26
  • Chạy ionic build --release android

Hy vọng điều này sẽ giúp được ai đó!


Dự án của tôi thay đổi thành target=android-26, nhưng vẫn hiển thị lỗi này
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'
                }
            }
        }
    }

bạn có thể chia sẻ thêm thông tin với mã để hiểu thêm về câu trả lời của bạn.
Prags

Thông thường tốt hơn là giải thích một giải pháp thay vì chỉ đăng một số hàng mã ẩn danh. Bạn có thể đọc Làm thế nào để tôi viết một câu trả lời hay và cũng Giải thích các câu trả lời hoàn toàn dựa trên mã
Anh Phạm

1
Cảm ơn bạn! Câu trả lời tốt nhất. Về cơ bản, các phụ thuộc dự án (các dự án node_modules) có các phiên bản sdk khác nhau. Thêm mã này vào build.gradle cấp gốc đảm bảo tất cả các phụ thuộc này sử dụng phiên bản sdk được chỉ định và dự án có thể xây dựng. : D
Nigh7Sh4de

4

Sau khi cập nhật studio android của bạn lên 3.0, nếu lỗi này xảy ra, chỉ cần cập nhật các thuộc tính lớp, đây là các cài đặt đã giải quyết vấn đề của tôi:

compileSdkVersion 26

targetSdkVersion 26

buildToolsVersion '26.0.2'

26.0.2phiên bản xây dựng những thứ cố định cho tôi.
Karl Taylor

3

Tôi đã cập nhật dự án của mình app/build.gradleđể có

compileSDkVersion 26
buildToolsVersion '26.0.1'

Tuy nhiên, vấn đề thực sự là với react-native-fbsdkgói. Tôi đã phải thay đổi các cài đặt tương tự trong node_modules/react-native-fbsdk/android/build.gradle.


3

Trong studio android,
nhấp chuột phải vào dự án (vì tôi có dự án Cordova, tôi có CordovaLib và android: Tôi đã chọn Android trong trường hợp của mình),

  1. Chọn mở cài đặt mô-đun
  2. Trong phương thức Cấu trúc dự án bật lên, chọn dự án trong phần mô-đun trong bảng điều khiển bên (một lần nữa là android trong trường hợp của tôi)
  3. Nhấp vào tab Phụ thuộc
  4. Nhấp vào nút cộng màu xanh lá cây ở góc trên bên phải
  5. Chọn phụ thuộc thư viện
  6. Chọn app-compat-v7 từ danh sách thả xuống
  7. Làm sạch dự án và xây dựng lại

Đây là cách khắc phục dễ dàng hơn nhiều so với chỉnh sửa thủ công tất cả các tệp.
Robert Liberatore

2

Tôi nhấn cái này gần đây và nhớ nó đến từ đâu. Đó là sự không phù hợp giữa phiên bản Xamarin.Android. * Và phiên bản Android SDK đã cài đặt.

Mặc 15.5.3định dự án mới của VS2017 cho nuGet Xamarin.Android.*25.4.0.2và cài đặt VS mặc định để phát triển đa nền tảng là các gói Android SDK sau:

  • Android 7.1- Nougat
    • Nền tảng SDK Android 25
    • Google API Hình ảnh hệ thống nguyên tử Intel x86

Nếu bạn nâng cấp bạn giải pháp NuGet cho Xamarin.Android.*đến 26.1.0.1sau đó bạn sẽ cần phải cài đặt tiếp theo trong Android SDK:

  • Android 8.0- Oreo
    • Nền tảng SDK Android 26
    • Google API Hình ảnh hệ thống nguyên tử Intel x86

2

Tôi đã phải đối mặt với cùng một vấn đề đối với một trong các dự án PhoneGap của tôi (Android studio 3.0.1). Để giải quyết vấn đề này tôi đã làm theo, bước sau

1) Nhấp chuột phải vào Tên dự án (Trong trường hợp của tôi là android), chọn "Mở cài đặt mô-đun"

2) Chọn mô-đun (android và CordovaLib)

3) Nhấp vào thuộc tính trên đầu trang

4) Chose Biên dịch phiên bản SDK (Tôi đã chọn API 26: Android 8.0)

5) Chọn Phiên bản công cụ xây dựng (Tôi đã chọn 26.0.2)

6) Tương thích nguồn (1.6)

7) Tương thích mục tiêu (1.6)

Nhấn Ok và xây dựng lại dự án.

Liên kết sau đây cho thấy cài đặt của tôi cho bước tôi đã theo dõi

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


2

Khi bạn cố gắng thay đổi targetSDKVersion 26 thành 25 vào thời điểm đó, tôi đã tìm thấy giải pháp Không tìm thấy tài nguyên phù hợp với tên đã cho: attr 'android: keyboardNavlationCluster'. khi cập nhật lên Thư viện hỗ trợ 26.0.0

Chỉ cần Chage Mã này từ Build.gradle của bạn

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

đến

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

Tôi gặp vấn đề này khi biên dịch Reac -igen-fbsdk

Tôi giải quyết vấn đề này bằng cách thay đổi build.gradlecủareact-native-fbsdk

từ

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

đến

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

1

Vấn đề này là do một trong những thư viện cho tôi cần phiên bản 26 để biên dịch.

Việc đặt targetSdkVersion thành 26 sẽ gây ra các vấn đề khác và bạn sẽ phải điều chỉnh ứng dụng của mình để thích ứng với nền tảng Oreo. Đây không phải là giải pháp chính xác cho tất cả.

Chỉ cần làm compileSdkVersion to 26buildToolsVersion to 26.0.2làm việc cho tôi.

Người ta cũng nên cập nhật tất cả các thư viện hỗ trợ của họ để sử dụng 26.1.0 trở lên.


1

cập nhật những thứ này trong lớp

biên dịchSdkVersion 27 buildToolsVersion '27 .0.1 '


1

Tôi đã giải quyết vấn đề này bằng cách thực hiện một số thay đổi trong tệp build.gradle

Thay đổi trong root build.gradle như sau:

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

Thay đổi trong build.gradle như sau:

compileSdkVersion 26 
buildToolsVersion "26.0.1"

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

1

Đối với bất kỳ ai sử dụng bản gốc và đối mặt với vấn đề này: bạn có thể thêm

compileSdkVersion 26
buildToolsVersion '26.0.1'

trong App_Resource / Android / app.gradle (bên dưới android {)

Sau đó chạy tns platform remove androidtns build androidtrong dự án gốc của bạn.


0

Đảm bảo bạn có Android SDK 8.0 trên môi trường phát triển của mình. Tôi đã gặp vấn đề tương tự trên MAC của mình và cài đặt SDK 8.0 và các công cụ của nó đã khắc phục nó. Tôi đang gặp vấn đề tương tự trên Windows. Tôi đang tải SDK ngay bây giờ.


0

tôi đã có cùng một vấn đề với ion.

cordova platform remove android
cordova platform add android@6.4.0

Và thay thế trong nền tảng / android / projet.properies

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

Đến

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

0

Đối với điều này, bạn phải làm những điều dưới đây 1. nhấp chuột phải vào dự án nhấp.

2.open cài đặt mô-đun-> trong tab thuộc tính-> thay đổi sdk biên dịch và xây dựng phiên bản công cụ thành 26,26.0.0.

3. Bấm ok.

Nó làm việc cho tôi sau một giờ cố gắng.


0

Tôi đã giải quyết vấn đề này bằng cách làm như sau:

compileSdkVersion 26
buildToolsVersion "26.0.1"

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

Vui lòng chỉ sử dụng tiếng Anh trên trang web này . Nếu bạn thích sử dụng tiếng Bồ Đào Nha, có Stack Overflow em Português .
Tom Zych

-1

Chỉ cần xóa dự án của bạn và xây dựng lại.

./gradlew  app:clean app:assembleDebug

Nhưng nó không hoạt động khi targetSdkVersion hoặc compileSdkVersion là 25.

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.