Aucune ressource trouvée correspondant au nom donné: attr 'android: keyboardNavigationCluster'. lors de la mise à jour vers la bibliothèque de support 26.0.0

215

J'ai ce problème lors de la mise à jour vers la dernière version de la bibliothèque de support 26.0.0 ( https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0 ):

Erreur: (18, 21) Aucune ressource trouvée correspondant au nom donné: 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: impossible d'exécuter aapt

Le fichier provient de la bibliothèque de support:

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

Nous utilisons les versions suivantes:

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

Des idées?

Alécio Carvalho
la source
5
cela reste un problème avec la dernière version (26.0.1): developer.android.com/topic/libraries/support-library/…
Alécio Carvalho

Réponses:

314

J'ai pu le résoudre en mettant à jour la version sdk et les outils dans gradle compileSdkVersion 26 buildToolsVersion "26.0.1"

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

Utilisateur XH6
la source
4
Ça n'a pas marché pour moi. J'ai dû mettre à niveau les services google play vers la version 11.2, puis l'erreur ci-dessus s'est produite et votre réponse n'a pas aidé. J'ai également mis à niveau tous les éléments de support vers 26.0.1 mais toujours pas de chance. Avez-vous d'autres idées?
Nandor Poka
Mais la mise à jour vers 26 aura également un impact majeur sur bien d'autres choses. Y compris les notifications qui ne fonctionnent pas jusqu'à ce que les canaux appropriés soient créés pour Android 8.0, n'est-ce pas?
Patric
5
@patric Son SDK de compilation ne cible pas le SDK.
Utilisateur XH6 du
Si cette solution ne fonctionne pas pour vous, consultez la réponse de Sam ci-dessous.
Benny
2
Que faire si je ne souhaite pas mettre à jour la version compileSdk à partir de 25 en raison d'une exigence métier? Comment s'en débarrasser?
binaryKarmic
53

Modifier la version du SDK de compilation:

compileSdkVersion 26

Version de l'outil de compilation:

buildToolsVersion "26.0.1"

Version du SDK cible:

targetSdkVersion 26

Dépendances:

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

Sync Gradle.

Amar Gore
la source
2
obtenir un avertissement: évitez d'utiliser + dans le numéro de version.
Qadir Hussain
2
cela a fonctionné pour moi. supprimé + de tout pour se débarrasser des avertissements
Qadir Hussain
2
n'utilisez pas +, vous voulez obtenir des builds reproductibles et avoir un contrôle total sur vos dépendances. Vous ne voulez pas que votre application commence à bugger après une nouvelle version car elle a tranquillement mis à jour une
bibliothèque
1
Vous n'avez pas besoin de mettre à jour le targetSdkVersionpour que cela fonctionne. La définition de 26 aura d'autres implications - c'est-à-dire que vous devez rendre votre application compatible pour Android 8.0.
ataulm
dans quel fichier je dois ajouter ces choses pouvez-vous guider @ataulm
Ravi Mehta
35

J'ai dû changer compileSdkVersion = 26et buildToolsVersion = '26.0.1'dans tous mes build.gradlefichiers de dépendances

Erik Duisters
la source
2
vous devez utiliser une constante dans gradle.properties pour tous vos numéros de version et l'utiliser dans vos fichiers build.gradle: api "com.android.support:appcompat-v7:$ANDROID_COMPATIBILITY_VERSION"
Snicolas
13

Dans mon projet natif réactif, cette erreur est générée dans le react-native-fbsdk. La mise à jour de ce react-native-fbsdk/android/build.gradlequi suit résout le problème.

compileSdkVersion 26
buildToolsVersion "26.0.1"
peteroid
la source
7
l'ajout ci-dessous à la racine build.gradle a fonctionné pas besoin d'éditer le fichier build.gradle du modulesubprojects { afterEvaluate {project -> if (project.hasProperty("android")) { android { compileSdkVersion 26 buildToolsVersion '26.0.1' } } } }
Yalamber
9

J'ai frappé cette même erreur exacte et je cherchais partout sur Google en essayant de trouver ce que je fais mal car c'est du code de valeurs de build généré 26 et non des styles que j'ai fournis. J'ai tout essayé, de Gradle 4.0 à Android Studio preview 3.0 en passant par le canal canari, vous l'appelez.

Je n'ai jamais trouvé la réponse en ligne. Au final, j'ai pu revenir au Dev Android Studio standard et 2.3.3 Gradle car j'ai fini par le réparer accidentellement :).

Il s'est avéré que j'étais tellement concentré sur la mise à jour de mon projet de bibliothèque que je ne remarquais pas que l'erreur provenait d'un sous-module inutilisé (application de démonstration) imbriqué dans mon projet de bibliothèque. Une fois que j'ai mis à jour le sous-module pour qu'il corresponde aux 26 outils de construction et aux 26+ bibliothèques de conception et de support, mon problème a disparu.

Je ne sais pas si c'est ce que vous voyez également, mais personnellement, je ne faisais que mettre à jour la bibliothèque pour la publier à nouveau, donc je ne me souciais pas de l'exemple de module d'application, et l'erreur semblait être liée à 26 sdk que j'ai seulement touchée. le module lib ne pensait donc pas à vérifier l'autre. C'était donc le problème depuis toujours. J'espère que cela vous corrige également. J'ai eu cette erreur dans 2 projets de bibliothèque et elle l'a corrigée dans les deux.

Goodluck dans les deux cas et si cela ne résout pas votre problème, veuillez partager ce qui s'est passé. BTW 26.0.01 build tools et 26.1.0 design and support est l'endroit où j'ai fini par aller, bien que 26.0.1 ait également bien fonctionné.

Sam
la source
Cela résout vraiment le problème (si vous avez plusieurs modules)
D. Sergeev
8

J'ai eu cette erreur exacte et j'ai réalisé que mon compileSdkVersionétait réglé sur 25et que mon buildToolsVersionétait réglé sur "26.0.1".

J'ai donc juste changé le compileSdkVersionpour 26et synchronisé le Gradle. cela a résolu le problème pour moi.

EDIT: mon targetSDKVersiona également été défini comme26

Junaid Aziz
la source
8

J'ai eu une erreur similaire pour react-native-youtube et react-native-orientation.

Compris, que le build.gradle de ceux du projet utilise compileSdkVersion 23mais la fonctionnalité: android: keyboardNavigationCluster a été ajoutée depuis api 26(android 8).

Alors comment y remédier?

Une façon de résoudre ce problème facilement est d'éditer votre /android/build.gradle (!!! PAS /android/app/build.gradle) et d'ajouter ce code en bas du fichier.

Cela vous permet de forcer le SDK et la version BuildTool que vos sous-modules utilisent:

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

J'ai également rencontré ce problème, vous devez simplement apporter 2 modifications:

Nom du fichier: android / build.gradle mentionner ce code ci-dessous

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

Nom du fichier: android / app / build.gradle changez votre version compliesdk et buildToolVersion comme ceci:

compileSdkVersion 26 buildToolsVersion "26.0.2"

et en

dependencies {
    compile 'com.android.support:appcompat-v7:26.0.2'
}
Revansiddh
la source
7

J'ai eu le même problème avec mon projet Ionic 2, tout ce que j'ai fait pour résoudre les problèmes était

  • Ouvrez "ionic_project_folder / plates-formes / android / project.properties"
  • Changer cible = android-25 en cible = android-26
  • Courir ionic build --release android

J'espère que cela aide quelqu'un!

Aweda
la source
Mon projet passe à target=android-26, mais affiche toujours cette erreur
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'
                }
            }
        }
    }
Pablo Rendón
la source
pouvez-vous partager plus d'informations avec le code pour mieux comprendre votre réponse.
Prags
Habituellement, il vaut mieux expliquer une solution au lieu de simplement publier quelques lignes de code anonyme. Vous pouvez lire Comment écrire une bonne réponse , et aussi Expliquer les réponses entièrement basées sur le code
Anh Pham
1
Je vous remercie! Meilleure réponse. Essentiellement, les dépendances du projet (projets node_modules) avaient différentes versions de sdk. L'ajout de ce code au niveau racine build.gradle garantit que toutes ces dépendances utilisent la version sdk spécifiée et que le projet est capable de générer. : D
Nigh7Sh4de
4

Après la mise à jour de votre studio Android vers 3.0, si cette erreur se produit, mettez à jour les propriétés de Gradle, ce sont les paramètres qui ont résolu mon problème:

compileSdkVersion 26

targetSdkVersion 26

buildToolsVersion '26.0.2'
Ajayacharya
la source
26.0.2la version de construction a corrigé les choses pour moi.
Karl Taylor
3

J'ai mis à jour mon projet app/build.gradlepour avoir

compileSDkVersion 26
buildToolsVersion '26.0.1'

Cependant, le problème était en fait avec le react-native-fbsdkpackage. J'ai dû changer les mêmes paramètres dans node_modules/react-native-fbsdk/android/build.gradle.

Karl Taylor
la source
3

Dans android studio,
faites un clic droit sur le projet (puisque j'avais un projet Cordova, j'avais CordovaLib et android: j'ai sélectionné android dans mon cas),

  1. Sélectionnez Ouvrir les paramètres du module
  2. Dans le modal Structure du projet qui apparaît, sélectionnez le projet dans la section modules du panneau latéral (encore une fois android dans mon cas)
  3. Cliquez sur l'onglet Dépendances
  4. Cliquez sur le bouton vert plus dans le coin supérieur droit
  5. Sélectionner la dépendance de la bibliothèque
  6. Sélectionnez app-compat-v7 dans la liste déroulante
  7. Projet propre et reconstruction
Jac
la source
C'est un moyen beaucoup plus simple de résoudre ce problème que de modifier manuellement tous les fichiers.
Robert Liberatore
2

J'ai frappé récemment et je me souviens d'où cela vient. Il s'agit d'un décalage entre la version Xamarin.Android. * Et la version SDK Android installée.

Les 15.5.3nouveaux paramètres par défaut du projet VS2017 pour nuGet Xamarin.Android.*sont 25.4.0.2et l'installation VS par défaut pour le développement multiplateforme sont les packages de SDK Android suivants:

  • Android 7.1- Nougat
    • Plateforme SDK Android 25
    • API Google Image du système Intel x86 Atom

Si vous mettez à jour vous solution pour NuGet Xamarin.Android.*à 26.1.0.1vous devrez installer le suivi dans le SDK Android:

  • Android 8.0- Oreo
    • Plateforme SDK Android 26
    • API Google Image du système Intel x86 Atom
dskow
la source
2

J'étais confronté au même problème pour l'un de mes projets PhoneGap (Android studio 3.0.1). Pour résoudre ce problème, j'ai suivi l'étape suivante

1) Faites un clic droit sur le nom du projet (dans mon cas android), sélectionnez "Ouvrir les paramètres du module"

2) Sélectionnez les modules (android et CordovaLib)

3) Cliquez sur les propriétés en haut

4) Choisissez la version SDK de compilation (j'ai choisi l'API 26: Android 8.0)

5) Choisissez la version de Build Tools (j'ai choisi 26.0.2)

6) Compatibilité des sources (1.6)

7) Compatibilité cible (1.6)

Cliquez sur OK et reconstruisez le projet.

Le lien suivant montre ma configuration pour l'étape que j'ai suivie

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

Chirag Purohit
la source
2

lorsque vous essayez de changer targetSDKVersion 26 en 25 ce moment-là, j'ai trouvé une solution de Aucune ressource trouvée correspondant au nom donné: attr 'android: keyboardNavigationCluster'. lors de la mise à jour vers la bibliothèque de support 26.0.0

Just Chage Ce code depuis votre 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'
            }
        }
    }
}
Sanjay Hadiya
la source
2

J'ai eu ce problème lors de la compilation de react-native-fbsdk

J'ai résolu ce problème en changeant build.gradledereact-native-fbsdk

de

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

à

compile('com.facebook.android:facebook-android-sdk:4.28.0')
Tuan Nguyen
la source
1

Ce problème a été causé par l'une des bibliothèques pour moi qui avait besoin de la version 26 pour la compilation.

Faire de targetSdkVersion à 26 entraînera d'autres problèmes et vous devrez modifier votre application pour l'adapter à la plateforme Oreo. Ce n'est pas la bonne solution pour tous.

Je fais juste ça compileSdkVersion to 26et buildToolsVersion to 26.0.2ça marche pour moi.

Il faut également mettre à jour toutes leurs bibliothèques de support pour utiliser 26.1.0 ou une version ultérieure.

Mohammed Ibrahim
la source
1

les mettre à jour gradle

compileSdkVersion 27 buildToolsVersion '27 .0.1 '

Artiste404
la source
1

J'ai résolu ce problème en apportant des modifications au fichier build.gradle

Les modifications apportées à root build.gradle sont les suivantes:

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

Les changements dans build.gradle sont les suivants:

compileSdkVersion 26 
buildToolsVersion "26.0.1"

et

dependencies {
    compile 'com.android.support:appcompat-v7:26.0.1'
}
Palak Jain
la source
1

Pour toute personne utilisant nativescript et confrontée à ce problème: vous pouvez ajouter

compileSdkVersion 26
buildToolsVersion '26.0.1'

dans App_Resources / Android / app.gradle (sous android {)

Ensuite, exécutez tns platform remove androidet tns build androiddans la racine de votre projet.

palia5
la source
0

Assurez-vous que vous avez Android SDK 8.0 sur votre environnement de développement. J'avais le même problème sur mon MAC et l'installation du SDK 8.0 et de ses outils l'a corrigé. J'ai le même problème sous Windows. Je télécharge le SDK maintenant.

Ph0b0x
la source
0

j'ai eu le même problème avec ionic.

cordova platform remove android
cordova platform add android@6.4.0

Et remplacez dans platform / android / projet.properties

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

À

cordova.system.library.1=com.android.support:support-v4:26+
Amr.Ayoub
la source
0

Pour cela, vous devez faire ci-dessous les choses 1.Cliquez avec le bouton droit sur le projet.

2. ouvrez les paramètres du module-> dans l'onglet propriétés-> changez la compilation du sdk et la version de l'outil de construction en 26,26.0.0.

3. cliquez sur ok.

Son travail pour moi après une heure a essayé.

S HemaNandhini
la source
0

J'ai résolu ce problème en procédant comme suit:

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'
Aldemir Gomes
la source
Veuillez utiliser uniquement l'anglais sur ce site . Si vous préférez utiliser le portugais, il y a Stack Overflow em Português .
Tom Zych
-1

Effacez simplement votre projet et reconstruisez.

./gradlew  app:clean app:assembleDebug

Mais cela ne fonctionne pas lorsque targetSdkVersion ou compileSdkVersion a 25 ans.

Esdras
la source