指定された名前に一致するリソースが見つかりません: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カルバリョ

回答:


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にアップグレードしましたが、まだうまくいきません。他に何かアイデアはありますか?
ナンドールポカ2017

ただし、26に更新すると、他の多くのことに大きな影響を与えます。Android 8.0で適切なチャネルが作成されるまで機能しない通知を含めますか?
Patric

5
@patricコンパイルSDKはターゲットSDKではありません。
XH6ユーザー

この解決策がうまくいかない場合は、以下のサムの答えをチェックしてください。
ベニー、

2
ビジネス要件のためにcompileSdkVersionを25から更新したくない場合はどうなりますか?これを取り除く方法は?
binaryKarmic

53

コンパイル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
警告:バージョン番号で+を使用しないでください。
カディールフセイン

2
これでうまくいきました。警告を取り除くためにすべてから+を削除
Qadir Hussain 2017

2
+を使用しないでください。再現可能なビルドを取得し、依存関係を完全に制御する必要があります。libを静かにアップグレードしたため、新しいビルドの後でアプリに
バグが発生

1
targetSdkVersionこれを機能させるためにを更新する必要はありません。26に設定すると、他の影響があります。つまり、アプリをAndroid 8.0と互換性のあるものにする必要があります。
ataulm 2017年

どのファイルにこれを追加する必要がありますか?@ataulm
Ravi Mehta

35

私はすべての依存ファイルを変更する必要がcompileSdkVersion = 26ありbuildToolsVersion = '26.0.1'ましたbuild.gradle


2
すべてのバージョン番号に対してgradle.propertiesの定数を使用し、build.gradleファイルでそれを使用する必要があります:api "com.android.support:appcompat-v7:$ANDROID_COMPATIBILITY_VERSION"
Snicolas

13

私の反応ネイティブプロジェクトでは、このエラーはで生成されますreact-native-fbsdkreact-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

私はこれとまったく同じエラーに遭遇し、私が提供したスタイルではなく、ビルド値-26コードが生成されるため、私が間違っていることを見つけようとずっとグーグルしていました。Gradle 4.0からAndroid Studio preview 3.0まで、カナリアチャンネルまで何でも試してみました。

オンラインで答えを見つけられませんでした。最終的に、誤って修正してしまったため、標準のDev Android Studioと2.3.3 Gradleに戻ることができました:)。

ライブラリプロジェクトの更新に非常に集中していたため、ライブラリプロジェクトにネストされている未使用のサブモジュール(デモアプリ)が原因でエラーが発生していることに気付きませんでした。26のビルドツールと26以上の設計およびサポートライブラリに一致するようにサブモジュールを更新したら、問題は解消しました。

それがあなたが見ているものかどうかはわかりませんが、個人的にはリリースするためにlibを更新するだけでしたので、サンプルのアプリモジュールについては気にせず、エラーは確かに触れた26 SDKに関連しているように見えましたlibモジュールは他のものをチェックすることを考えていませんでした。それが私にとってずっと問題でした。うまくいけば、それもあなたを修正します。2つのライブラリプロジェクトでこのエラーが発生し、両方で修正されました。

いずれにせよGoodluckで問題が解決しない場合は、何をしたかを共有してください。ところで、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が、機能:android:keyboardNavigationClusterがapi 26(android 8)以降に追加されたことがわかりました。

それでは、どのように修正しますか?

これを簡単に修正する1つの方法は、/ android / build.gradle(!!!ではなく/android/app/build.gradle)を編集して、ファイルの下部にこれらのコードを追加することです。

これにより、サブモジュールが使用するSDKおよびBuildTool-Versionを強制できます。

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

7

私はこの問題にも直面しました。2つの変更を加えるだけです。

ファイル名: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、2017

通常は、匿名コードのいくつかの行を投稿するだけでなく、解決策を説明する方が良いでしょう。どのようにすれば良い答えを書けますか。また、完全にコードベースの答えを説明します
Anh Pham

1
ありがとうございました!ベストアンサー。基本的に、プロジェクトの依存関係(node_modulesプロジェクト)には異なるSDKバージョンがありました。このコードをルートレベルのbuild.gradleに追加すると、これらすべての依存関係が指定されたsdkバージョンを使用し、プロジェクトをビルドできるようになります。:D
Nigh7Sh4de 2018

4

Android Studioを3.0に更新した後、このエラーが発生する場合はGradleプロパティを更新するだけで、これらの問題が私の問題を解決しました。

compileSdkVersion 26

targetSdkVersion 26

buildToolsVersion '26.0.2'

26.0.2私のためにバージョンを修正したものをビルドします。
カールテイラー

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. [Open Module Settings]を選択します
  2. ポップアップするプロジェクト構造モーダルで、サイドパネルのモジュールセクションでプロジェクトを選択します(ここでもandroidです)。
  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は、クロスプラットフォーム開発のためのデフォルトインストールでは、次のAndroid SDKパッケージです:

  • アンドロイド7.1-ヌガー
    • Android SDKプラットフォーム 25
    • Google API Intel x86 Atomシステムイメージ

あなたはあなたのソリューションnuGetをアップグレードした場合Xamarin.Android.*26.1.0.1、あなたは、Android SDKでのフォローをインストールする必要があります。

  • アンドロイド8.0-オレオ
    • Android SDKプラットフォーム 26
    • Google API Intel x86 Atomシステムイメージ

2

PhoneGapプロジェクトの1つ(Android studio 3.0.1)でも同じ問題に直面していました。私が従ったこれを解決するために、次のステップ

1)プロジェクト名(私の場合はandroid)を右クリックして、「モジュール設定を開く」を選択します。

2)モジュールを選択します(androidおよびCordovaLib)

3)上部のプロパティをクリックします

4)コンパイルSDKバージョンを選択しました(API 26:Android 8.0を選択しました)

5)ビルドツールのバージョンを選択します(26.0.2を選択しました)

6)ソースの互換性(1.6)

7)ターゲットの互換性(1.6)

[OK]をクリックしてプロジェクトを再構築します。

次のリンクは、私が従ったステップの私の設定を示しています

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


2

そのときに発生したtargetSDKVersion 26を25に変更しようとすると、指定された名前に一致するリソースが見つからないという解決策が見つかりました:attr 'android:keyboardNavigationCluster'。サポートライブラリ26.0.0に更新する場合

Build.gradleのこのコードを変更する

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.gradleしますreact-native-fbsdk

から

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

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

1

この問題は、コンパイルにバージョン26を必要としたライブラリの1つが原因で発生しました。

targetSdkVersionを26にすると、他の問題が発生するため、アプリを調整してOreoプラットフォームに適応させる必要があります。これはすべての人にとって正しい解決策ではありません。

ちょうど作るcompileSdkVersion to 26buildToolsVersion 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

nativescriptを使用していてこの問題に直面している人のために:あなたは追加することができます

compileSdkVersion 26
buildToolsVersion '26.0.1'

App_Resources / Android / app.gradle(下android {

その後、実行tns platform remove androidしてtns 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. [OK]をクリックします。

1時間試した後、私のために働く。


0

私は次のようにしてこの問題を解決しました:

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'

このサイトでは英語のみを使用してください。ポルトガル語を使用したい場合は、PortuguêsのStack Overflowがあります。
Tom Zych

-1

プロジェクトをクリアして、もう一度ビルドします。

./gradlew  app:clean app:assembleDebug

ただし、targetSdkVersionまたはcompileSdkVersionが25の場合は機能しません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.