我在更新到最新的支持库版本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'.

process. processexception: Failed to execute 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

什么好主意吗?


清除你的项目并重新构建。

./gradlew  app:clean app:assembleDebug

但当targetSdkVersion或compileSdkVersion为25时,它就不起作用了。


我能够解决它通过更新sdk版本和工具在gradle compileSdkVersion 26 buildToolsVersion“26.0.1”

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


我不得不改变compileSdkVersion = 26和buildToolsVersion = '26.0.1'在我所有的依赖构建。gradle文件


改变 编译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。


我遇到了这个完全相同的错误,并在谷歌上到处搜索,试图找到我做错了什么,因为这是生成build values-26代码,而不是我提供的样式。我尝试了从Gradle 4.0到Android Studio预览3.0再到金丝雀频道,应有尽有。

我从来没有在网上找到答案。最后,我能够回到标准的Dev Android Studio和2.3.3 Gradle,因为我最终意外地修复了它:)。

原来我是如此专注于更新我的库项目,我没有注意到错误是由一个未使用的子模块(演示应用程序)嵌套在我的库项目中引起的。一旦我更新了子模块以匹配26个构建工具和26+设计和支持库,我的问题就消失了。

不确定这是否是你所看到的,但就我个人而言,我只是更新了lib再次发布,所以不关心样本应用程序模块,错误肯定似乎与26 sdk有关,我只在lib模块中接触过,所以没有考虑检查另一个。这就是我一直以来的问题。希望这也能解决你的问题。我在2个图书馆项目中有这个错误,它在两个项目中都修复了它。

祝你好运,如果这不能解决你的问题,请分享是什么解决了。BTW 26.0.01的构建工具和26.1.0的设计和支持是我最终选择的,尽管26.0.1的工作也很好。


在更新你的android studio到3.0后,如果出现这个错误,只需更新gradle属性,这些是解决我的问题的设置:

compileSdkVersion 26

targetSdkVersion 26

buildToolsVersion '26.0.2'

我有这个确切的错误,我意识到我的compileSdkVersion设置为25,我的buildToolsVersion设置为“26.0.1”。

所以我只是把compileSdkVersion改为26并同步了Gradle。这为我解决了问题。

编辑:我的targetSDKVersion也被设置为26


这个问题是由我的一个需要版本26编译的库引起的。

将targetSdkVersion设置为26会导致其他问题,你必须调整应用程序以适应Oreo平台。这并不是所有问题的正确解决方案。

只需要将compileSdkVersion设置为26,将buildToolsVersion设置为26.0.2就可以了。

还应该更新所有支持库以使用26.1.0或更高版本。


确保您的开发环境中有Android SDK 8.0。我在MAC上也遇到了同样的问题,安装SDK 8.0及其工具解决了这个问题。我在Windows上也有同样的问题。我正在下载SDK。


在gradle中更新这些

compileSdkVersion 27 buildToolsVersion 27.0.1”


在我的react-native项目中,这个错误是在react-native-fbsdk中生成的。更新react-native-fbsdk/android/build。下面的Gradle修复了这个问题。

compileSdkVersion 26
buildToolsVersion "26.0.1"

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

我也遇到过这个问题,你只需要做2个改变:

文件名称:android/build。Gradle在下面的代码中提到这一点

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

文件名称:android/app/build.gradle 像这样修改你的complesdk版本和buildToolVersion:

compileSdkVersion 26 buildToolsVersion "26.0.2"

而在

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

我的一个PhoneGap项目(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


我更新了我的项目app/build。Gradle有

compileSDkVersion 26
buildToolsVersion '26.0.1'

然而,问题实际上出在react-native-fbsdk包上。我不得不在node_modules/react-native-fbsdk/android/build.gradle中更改相同的设置。


我的Ionic 2项目也有同样的问题,我所做的解决问题的方法是

打开“ionic_project_folder /平台/ android / project.properties” 将目标=android-25更改为目标=android-26 运行ionic build -release android

希望这能帮助到一些人!


我通过在构建中做一些更改来解决这个问题。gradle文件

根构建的更改。Gradle如下:

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

构建的变化。Gradle如下:

compileSdkVersion 26 
buildToolsVersion "26.0.1"

and

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

我最近碰到过这个,记得它是怎么来的。这是xamarin和android的不匹配。*版本和已安装的Android SDK版本。

当前VS2017 15.5.3新项目默认为nuGet Xamarin.Android。*为25.4.0.2,用于跨平台开发的默认VS安装是以下Android SDK包:

Android 7.1 -牛轧糖 Android SDK平台25 谷歌APIs Intel x86 Atom系统镜像

如果你升级了你的解决方案nuGet Xamarin.Android。*到26.1.0.1,那么你需要在Android SDK中安装以下软件:

安卓8.0 -奥利奥 Android SDK平台26 谷歌APIs Intel x86 Atom系统镜像


对于任何使用nativescript并面临此问题的人:您可以添加

compileSdkVersion 26
buildToolsVersion '26.0.1'

在App_Resources / Android应用程序。Gradle(在android{下)

然后运行tns平台删除android和tns构建android在你的项目根。


在android studio,右键单击项目(因为我有一个Cordova项目,我有CordovaLib和android:在我的情况下,我选择了android),

选择开放模块设置 在弹出的项目结构模式中,在侧面板的模块部分选择项目(在我的例子中还是android) 单击Dependencies选项卡 点击右上角的绿色加号按钮 选择库依赖关系 从下拉菜单中选择app-compat-v7 清理项目和重建


我对离子也有同样的问题。

cordova platform remove android
cordova platform add android@6.4.0

在platform/android/ project .properties中替换

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

To

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

当您尝试将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'
            }
        }
    }
}

to

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

为此你必须做下面的事情 1.右击项目单击。

2.打开模块设置->属性选项卡->修改编译SDK和构建工具版本为26,26.0.0。

3.单击ok。

试了一个小时后,它为我工作了。


我在编译react-native-fbsdk时得到了这个问题

我通过更改构建解决了这个问题。react-native-fbsdk的Gradle

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

to

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

我在react-native-youtube和react-native-orientation上也有类似的错误。

搞清楚了,那就是建造。这些项目的gradle使用compileSdkVersion 23,但Feature: android:keyboardNavigationCluster是从api 26 (android 8)开始添加的。

那么如何修复呢?

一个简单的解决方法是编辑你的/android/build。Gradle (!!不是/android/app/build.gradle),并将这些代码添加到文件底部。

这允许你强制SDK和BuildTool-Version你的子模块使用:

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

我通过以下方法解决了这个问题:

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'