Nenhum recurso encontrado que corresponda ao nome dado: attr 'android: keyboardNavigationCluster'. ao atualizar para a Biblioteca de suporte 26.0.0

215

Eu tenho esse problema ao atualizar para a versão mais recente da Biblioteca de suporte 26.0.0 ( https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0 ):

Erro: (18, 21) Nenhum recurso encontrado que corresponda ao nome fornecido: 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: falha ao executar o aapt

O arquivo é da biblioteca de suporte:

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

Estamos usando as seguintes versões:

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

Alguma ideia?

Alécio Carvalho
fonte
5
continua a ser um problema com a versão mais recente (26.0.1): developer.android.com/topic/libraries/support-library/...
Alécio Carvalho

Respostas:

314

Consegui resolvê-lo atualizando a versão e as ferramentas sdk em gradle compileSdkVersion 26 buildToolsVersion "26.0.1"

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

Usuário XH6
fonte
4
Isso não funcionou para mim. Eu tive que atualizar os serviços do Google Play para 11.2 e, em seguida, veio o erro acima, e sua resposta não ajudou. Também atualizei todo o material de suporte para 26.0.1, mas ainda não tive sorte. Você tem outras idéias?
Nandor Poka
Mas a atualização para 26 também terá um grande impacto em muitas outras coisas. Incluir notificações que não funcionam até que os canais adequados sejam criados para o Android 8.0, certo?
Patric
5
@patric Seu SDK de compilação não é direcionado ao SDK.
Usuário XH6
Se esta solução não funcionar, verifique a resposta de Sam abaixo.
Benny
2
E se eu não quiser atualizar a compileSdkVersion de 25 devido a um requisito comercial? Como me livro disto?
amigos estão dizendo sobre binaryKarmic
53

Alterar versão do SDK de compilação:

compileSdkVersion 26

Versão da ferramenta de compilação:

buildToolsVersion "26.0.1"

Versão do SDK de destino:

targetSdkVersion 26

Dependências:

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
fonte
2
recebendo aviso: evite usar + no número da versão.
Qadir Hussain
2
isso funcionou para mim. removido + de todos para se livrar de avisos
Qadir Hussain
2
não use +, você deseja obter compilações reproduzíveis e ter controle total sobre suas dependências. Você não quer que seu aplicativo para iniciar incomodando após uma nova compilação porque silenciosamente atualizado um lib ...
Snicolas
1
Você não precisa atualizar o targetSdkVersionpara que isso funcione. Definir isso como 26 terá outras implicações - ou seja, você deve tornar seu aplicativo compatível com o Android 8.0.
ataulm
no qual arquivo i deve adicionar essas coisas você pode guiar @ataulm
Ravi Mehta
35

Eu tive que mudar compileSdkVersion = 26e buildToolsVersion = '26.0.1'em todos os meus build.gradlearquivos de dependências

Erik Duisters
fonte
2
você deve usar uma constante em gradle.properties para todos os seus números de versão e usá-lo em seus arquivos build.gradle: api "com.android.support:appcompat-v7:$ANDROID_COMPATIBILITY_VERSION"
Snicolas
13

No meu projeto react-native, esse erro é gerado no react-native-fbsdk. Atualizar o react-native-fbsdk/android/build.gradleseguinte corrige o problema.

compileSdkVersion 26
buildToolsVersion "26.0.1"
peteroid
fonte
7
acrescentando abaixo para build.gradle raiz trabalhou há necessidade de editar arquivos build.gradle do módulosubprojects { afterEvaluate {project -> if (project.hasProperty("android")) { android { compileSdkVersion 26 buildToolsVersion '26.0.1' } } } }
Yalamber
9

Eu acertei exatamente o mesmo erro e estava pesquisando no Google todo o que estava fazendo de errado, pois isso gerou o código de valores-26 da compilação e não os estilos que forneci. Eu tentei de tudo, desde o Gradle 4.0 ao Android Studio preview 3.0 até o canal canary, o nome dele.

Eu nunca encontrei a resposta online. No final, consegui voltar ao padrão Dev Android Studio e 2.3.3 Gradle, pois acabei corrigindo acidentalmente :).

Acontece que eu estava tão concentrado em atualizar meu projeto de biblioteca que não percebi que o erro foi causado por um submódulo não utilizado (aplicativo de demonstração) aninhado no meu projeto de biblioteca. Depois que atualizei o submódulo para corresponder às 26 ferramentas de compilação e mais de 26 bibliotecas de design e suporte, meu problema desapareceu.

Não tenho certeza se é isso que você está vendo também, mas, pessoalmente, eu estava atualizando a lib para liberar novamente novamente, por isso não me importo com o módulo de aplicativo de amostra e o erro com certeza parece estar relacionado ao 26 sdk no qual apenas toquei o módulo lib então não estava pensando em verificar o outro. Então esse era o problema o tempo todo para mim. Espero que isso conserte você também. Eu tive esse erro em 2 projetos de biblioteca e o corrigiu em ambos.

Boa sorte de qualquer maneira e, se isso não resolver o seu problema, compartilhe o que fez. As ferramentas de construção do BTW 26.0.01 e o design e suporte da 26.1.0 foram os locais onde acabei indo, embora 26.0.1 tenha funcionado bem também.

Sam
fonte
É realmente resolve o problema (se você tiver vários módulos)
D. Sergeev
8

Eu tive esse erro exato e percebi que o meu compileSdkVersionestava definido como 25e o meu buildToolsVersionfoi definido como "26.0.1".

Então eu mudei o compileSdkVersionpara 26e sincronizei o Gradle. corrigiu o problema para mim.

EDIT: my targetSDKVersiontambém foi definido como26

Junaid Aziz
fonte
8

Eu tive um erro semelhante para reagir-native-youtube e reagir-native-orientação.

Descobrimos que o build.gradle desses Project usa, compileSdkVersion 23mas o recurso: android: keyboardNavigationCluster foi adicionado desde api 26(android 8).

Então, como consertar?

Uma maneira de corrigir isso facilmente é editar o seu /android/build.gradle (!!! NOT /android/app/build.gradle) e adicionar esse código na parte inferior do arquivo.

Isso permite que você force o SDK e a versão BuildTool que seus submódulos usam:

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

Também enfrentei esse problema, você só precisa fazer duas alterações:

Nome do arquivo: android / build.gradle mencione este código abaixo

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

Nome do arquivo: android / app / build.gradle altere sua versão compliesdk e buildToolVersion como este:

compileSdkVersion 26 buildToolsVersion "26.0.2"

e em

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

Eu tive o mesmo problema com o meu projeto Ionic 2, tudo o que fiz para resolver os problemas foi

  • Abra "ionic_project_folder / plataformas / android / project.properties"
  • Alterar target = android-25 para target = android-26
  • Corre ionic build --release android

Espero que isso ajude alguém!

Aweda
fonte
Meu projeto de mudança para target=android-26, mas ainda mostrando esse erro
Yuyang Ele
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
fonte
você pode compartilhar mais informações com o código para entender melhor sua resposta.
Prags
Geralmente, é melhor explicar uma solução em vez de apenas postar algumas linhas de código anônimo. Você pode ler Como faço para escrever uma resposta boa , e também Explicando respostas totalmente baseada em código
Anh Pham
1
Obrigado! Melhor resposta. Essencialmente, as dependências do projeto (node_modules projects) tinham versões diferentes do sdk. A adição desse código ao nível raiz build.gradle garante que todas essas dependências usem a versão sdk especificada e que o projeto possa compilar. : D
Nigh7Sh4de 27/09/18
4

Depois de atualizar o seu android studio para 3.0, se esse erro ocorrer, atualize as propriedades gradle, estas são as configurações que resolveram o meu problema:

compileSdkVersion 26

targetSdkVersion 26

buildToolsVersion '26.0.2'
Ajayacharya
fonte
26.0.2versão de construção corrigiu as coisas para mim.
Karl Taylor
3

Eu atualizei meu projeto app/build.gradlepara ter

compileSDkVersion 26
buildToolsVersion '26.0.1'

No entanto, o problema estava realmente com o react-native-fbsdkpacote. Eu tive que alterar as mesmas configurações node_modules/react-native-fbsdk/android/build.gradle.

Karl Taylor
fonte
3

No android studio,
clique com o botão direito do mouse no projeto (já que eu tinha um projeto Cordova, eu tinha CordovaLib e android: selecionei android no meu caso),

  1. Selecione Abrir configurações do módulo
  2. No modal de estrutura do projeto que aparece, selecione o projeto na seção de módulos no painel lateral (novamente android no meu caso)
  3. Clique na guia Dependências
  4. Clique no botão verde mais no canto superior direito
  5. Selecionar dependência da biblioteca
  6. Selecione app-compat-v7 no menu suspenso
  7. Projeto limpo e reconstrução
Jac
fonte
Essa é uma maneira muito mais fácil de corrigir isso do que editar manualmente todos os arquivos.
Robert Liberatore
2

Eu bati isso recentemente e lembro de onde vem. É uma incompatibilidade entre a versão Xamarin.Android. * E a versão instalada do Android SDK.

Os atuais padrões do 15.5.3novo projeto do VS2017 para o nuGet Xamarin.Android.*are 25.4.0.2e a instalação padrão do VS para o desenvolvimento de plataforma cruzada são os seguintes pacotes do SDK do Android:

  • Android 7.1- Nougat
    • Plataforma Android SDK 25
    • APIs do Google Imagem do sistema Intel x86 Atom

Se você atualizou solução Nuget para Xamarin.Android.*a 26.1.0.1então você vai precisar instalar o acompanhamento no SDK do Android:

  • Android 8.0- Oreo
    • Plataforma Android SDK 26
    • APIs do Google Imagem do sistema Intel x86 Atom
dskow
fonte
2

Eu estava enfrentando o mesmo problema em um dos meus projetos PhoneGap (Android studio 3.0.1). Para resolver isso, segui a seguinte etapa

1) Clique com o botão direito do mouse no nome do projeto (no meu caso, android), selecione "Abrir configurações do módulo"

2) Selecione os módulos (android e CordovaLib)

3) Clique nas propriedades na parte superior

4) Escolha a versão do SDK do Compile (eu escolhi a API 26: Android 8.0)

5) Escolha a versão Build Tools (eu escolhi 26.0.2)

6) Compatibilidade de fontes (1.6)

7) Compatibilidade de destino (1.6)

Clique em Ok e reconstrua o projeto.

O link a seguir mostra minha configuração para a etapa que segui

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

Chirag Purohit
fonte
2

quando você tenta alterar a targetSDKVersion 26 para 25 naquele momento ocorreu, foi encontrada a solução de Nenhum recurso encontrado que corresponda ao nome dado: attr 'android: keyboardNavigationCluster'. ao atualizar para a Biblioteca de suporte 26.0.0

Just Chage Este código do seu 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'
            }
        }
    }
}

para

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

Eu tenho esse problema ao compilar react-native-fbsdk

Resolvi esse problema por alteração build.gradle dereact-native-fbsdk

de

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

para

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

Esse problema foi causado por uma das bibliotecas para mim que precisava da versão 26 para compilação.

Fazer a targetSdkVersion para 26 causará outros problemas e você precisará ajustar seu aplicativo para se adaptar à plataforma Oreo. Esta não é a solução correta para todos.

Apenas fazendo o compileSdkVersion to 26e buildToolsVersion to 26.0.2funcionou para mim.

É preciso também atualizar todas as suas bibliotecas de suporte para usar 26.1.0 ou posterior.

Mohammed Ibrahim
fonte
1

atualizá-los em gradle

compileSdkVersion 27 buildToolsVersion '27 .0.1 '

Artista404
fonte
1

Resolvi esse problema fazendo algumas alterações no arquivo build.gradle

As alterações no root build.gradle são as seguintes:

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

As alterações no build.gradle são as seguintes:

compileSdkVersion 26 
buildToolsVersion "26.0.1"

e

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

Para quem usa o nativescript e enfrenta esse problema: você pode adicionar

compileSdkVersion 26
buildToolsVersion '26.0.1'

em App_Resources / Android / app.gradle (em android { )

Em seguida, execute tns platform remove androide tns build androidna raiz do projeto.

palia5
fonte
0

Verifique se você possui o Android SDK 8.0 no seu ambiente de desenvolvimento. Eu estava tendo o mesmo problema no meu MAC e a instalação do SDK 8.0 e suas ferramentas o corrigiram. Estou tendo o mesmo problema no Windows. Estou baixando o SDK agora.

Ph0b0x
fonte
0

Eu tive o mesmo problema com iônica.

cordova platform remove android
cordova platform add android@6.4.0

E substitua na plataforma / android / projet.properties

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

Para

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

Para isso, você deve fazer as seguintes ações 1.Clique com o botão direito do mouse no projeto.

2. abra as configurações do módulo-> na guia Propriedades-> altere o compilador sdk e construa a versão da ferramenta para 26,26.0.0.

3. clique em ok.

Seu trabalho para mim depois de uma hora tentou.

S HemaNandhini
fonte
0

Resolvi esse problema, fazendo o seguinte:

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
fonte
Por favor, use apenas inglês neste site . Se você preferir usar o português, existe o Stack Overflow em português .
Tom Zych 12/01/19
-1

Apenas limpe seu projeto e construa novamente.

./gradlew  app:clean app:assembleDebug

Mas não funciona quando targetSdkVersion ou compileSdkVersion tem 25 anos.

Esdras
fonte