appcompat-v7: 21.0.0 ': nenhum recurso encontrado que corresponda ao nome fornecido: attr' android: actionModeShareDrawable '

376

Ao tentar usar a biblioteca de suporte mais recente appcompat-v7 no meu projeto, recebo o seguinte erro:

/Users/greg/dev/mobile/android_project/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.0/res/values-v11/values.xml
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.

Como faço para corrigir isso?

loeschg
fonte
11
Estou recebendo esse problema no eclipse. Eu tive mais de 100 erros porque minhas ferramentas de compilação do SDK não foram atualizadas para a rev 21. Porém, agora existem erros diferentes ... então, procure por eles.
RED_
Hoje eu desinstalei e reinstalei o Extras / Biblioteca de suporte Android (versão 21.0.2) e observe que seu project.properties ainda aponta incorretamente para target = android-19, que é a raiz do problema. Deve ter 21 anos, mas é um arquivo gerado - não editável à mão -. Consulte a resposta aceita para solução alternativa.
JulianSymes
@RED_, Não é possível resolver o símbolo 'android: Theme.Material.Light' em <style name = "AppBaseTheme" parent = "android: Theme.Material.Light"> </style> em valules-v21 no android studio
Pankaj Nimgade
@PankajNimgade Eu não entendo ... você precisa de ajuda?
RED_
@RED_, sim eu preciso de ajuda desesperadamente, no meu computador eu não consigo detectar nada por Tema material ou qualquer coisa que começa com android em valores-v21 \ estilos, ajuda-me amavelmente
Pankaj Nimgade

Respostas:

598

Embora a resposta de loeschg esteja absolutamente correta, só quero elaborar e dar uma solução para todos os IDEs (Eclipse, IntellJ e Android Studio), mesmo que os erros sejam ligeiramente diferentes.


Pré requisitos

Verifique se você baixou o mais recente extrase o Android 5.0 SDKvia SDK-Manager.

Imagem do Gerenciador de SDK


Android Studio

Abra o build.gradlearquivo do seu módulo de aplicativo e mude compileSdkVersionpara 21. Não é necessário alterar a targetSdkVersionversão do SDK para 21, mas é recomendável, pois você sempre deve ter como alvo a versão de compilação mais recente do Android .
No final, o arquivo gradle ficará assim:

android {
    compileSdkVersion 21
    // ...

    defaultConfig {
        // ...
        targetSdkVersion 21
    }
}

Certifique-se de sincronizar seu projeto posteriormente.

Lembrete do Android Studio Gradle Sync


Eclipse

Ao usar o v7-appcompatno Eclipse, você deve usá-lo como um projeto de biblioteca. Não basta copiar o * .jar na sua /libspasta. Leia este tutorial passo a passo (em inglês) em developer.android.com para saber como importar o projeto corretamente.

Assim que o projeto for importado, você perceberá que algumas pastas na /respasta estão sublinhadas em vermelho devido a erros como o seguinte:

Erros no Eclipse

error: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material'.
error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.*'
error: Error: No resource found that matches the given name: attr 'android:actionModeShareDrawable'.

Solução

A única coisa que você precisa fazer é abrir o project.propertiesarquivo android-support-v7-appcompate alterar o destino de target=android-19para target=android-21.
Depois, basta fazer um Project --> Clean...para que as alterações tenham efeito.


IDEA do IntelliJ (não usando Gradle)

Semelhante ao Eclipse, não basta usar apenas o android-support-v7-appcompat.jar; você precisa importar o appcompatcomo um módulo. Leia mais sobre isso neste StackO-Post (clique) .
( Nota: se você estiver usando apenas o que .jarvocê usará NoClassDefFoundErrorsno Runtime )

Ao tentar criar o projeto, você encontrará problemas nas res/values-v**pastas. Sua janela de mensagem exibirá algo como o seguinte:

Error:android-apt-compiler: [appcompat]  resource found that matches the given name: attr 'android:colorPrimary'.
Error:(75, -1) android-apt-compiler: [appcompat] C:\[Your Path]\sdk\extras\android\support\v7\appcompat\res\values-v21\styles_base.xml:75: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.ActionButton'.
// and so on

Solução

Clique com o botão direito do mouse no appcompatmódulo -> Abrir Configurações do Módulo (F4) -> [Guia Dependency] Selecione Android API 21 Platform no menu suspenso -> Aplicar

Selecionar plataforma API 21

Em seguida, basta reconstruir o projeto (Build -> Rebuild Project) e você estará pronto.

reverter
fonte
2
Eu também estou enfrentando mesma prov em eclipse após a mudança da meta de target = android-19 a target = android-21 também recebendo erro na cara pasta valor
Prabhakaran
11
Quando altero o AppCompat para 5.0 no eclipse, ele não é mais compilado e a pasta .bin está vazia.
Clive Jefferies
11
Impressionante, realmente eu estava lutando de últimos 2 dias, mas ur mudança truque Android-19 a 21 trabalhou .. Thanks Man
Mukesh Garg
11
Usando o Eclipse, tive que atualizar o destino do projeto para 21 em todos os projetos que estavam usando a biblioteca appcompat, não apenas no projeto appcompat.
Bianca Daniciuc
11
Atualmente, estou lutando com os problemas anteriores mencionados em eclipse / android. É realmente uma carga de besteiras impenetráveis ​​não confiáveis.
AndyUK
123

Provavelmente, porque você não configurou seu compileSdkVersion21 no arquivo build.gradle. Você provavelmente também quer mudar targetSdkVersionpara 21.

android {
    //...
    compileSdkVersion 21

    defaultConfig {
        targetSdkVersion 21
    }
    //...
}

Isso requer que você baixe as atualizações mais recentes do SDK para começar.

Gerenciador de SDK do Android Studio

Depois de baixar todas as atualizações (não esqueça de atualizar também a Biblioteca de Suporte / Repositório do Android também!) E atualize sua compileSdkVersion, sincronize novamente seu projeto Gradle.

Edit: Para usuários gerais do Eclipse ou IntelliJ

Veja a resposta do reverso. Ele tem uma caminhada muito completa!

loeschg
fonte
2
Essa é a resposta correta. A atualização para 21 requer isso, as novas dependências do appcompat e você precisa fazer o download da versão 12 dos serviços play.
sbaar
11
E não se esqueça de executar o JDK 7
Chad Bingham
11
Enquanto ainda estiver correto, consulte a solução da @ reVerse. É mais profundo :)
loeschg
não usei nenhum dos IDEs nem Gradle ... é semelhante quando uso o Ant e o Notepad?
Valen
22

`Siga os passos abaixo:

está funcionando para mim. Para resolver esse problema,

1.Clique com o botão direito do mouse na biblioteca appcompat_v7 e selecione Propriedades

2.Agora, clique na opção Android, defina o caminho de criação do projeto como Android 5.0 (nível de API 21) Aplicar alterações.

3. Agora vá para o arquivo project.properties na biblioteca appcompat_v7,

4. Defina o destino do projeto como: target = android-21

5.Agora Limpe + Crie a biblioteca appcompat_v7 e seus projetos`

madhu527
fonte
11
Eu usei o seu caminho e defini o alvo android-21 no projeto e na biblioteca e, em seguida, limpei e pronto ... obrigado.
Md Mohsin
11
onde posso encontrar a biblioteca appcompat_v7?
SleepNot
2
pode encontrar lib appcompat_v7 em: ADT-bundle-windows-x86_64 -> SDK -> \ extras \ -> android \ -> Suporte -> v7
madhu527
Esta resposta em combinação com a resposta de loeschg acima resolveu esse problema no Eclipse.
Michael Todd
12

Caso você não queira usar a API 21 como a API de destino e, portanto, não queira usar o Tema do Material, precisará usar uma revisão anterior pertencente à API 19>

compile "com.android.support:appcompat-v7:19.0.+"

Isso também ajuda a resolver seu problema, depende apenas do que você deseja alcançar.

vandus
fonte
Eu concordo com você. Afinal, nem todo mundo planeja segmentar sdk aos 21 anos.
peacepassion
10

Eu encontrei esse problema com o play-services: 5.0.89. A atualização para o 6.1.11 resolveu o problema.

pepyakin
fonte
8

No Android Studio, eu estava tentando definir o compileSdkVersione targetSdkVersionpara 19.

Minha solução foi substituir na parte inferior build.gradle, a partir disso:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
}

Para a versão mais antiga da biblioteca appcompat:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19.+'
}
Gianfranco P.
fonte
eu estava usando uma versão mais recente appcompact mas agora eu quero doengrade a versão anterior, mas eu estou recebendo este erro na pasta-arr explodiu
Antwan
3

Eu adicionei outro projeto ao meu espaço de trabalho e estava tentando fazer referência a uma atividade dele no arquivo de manifesto, e estava recebendo esse erro. O problema é que eu estava referenciando a biblioteca incorretamente. Foi assim que resolvi o problema:

  • Clique com o botão direito do mouse no projeto
  • Selecione Propriedades
  • Clique no Android no menu esquerdo
  • Clique em Adicionar
  • Por favor, selecione um Projeto de Biblioteca

O jar foi para a pasta Android Dependencies e esse erro foi corrigido.

amor ao vivo
fonte
Eu executei sua sequência. Então teve uma incompatibilidade «Jar! Corrija suas dependências »no console do Android, pois os jars em libs / e jars em projetos dependentes da appcompat e da biblioteca de serviços do Google Play não eram correspondentes (estavam com SHA-1 e comprimento de arquivo jar incompatíveis). Lutando ainda mais, considero isso um sucesso.
Eugene Gr. Philippov
2

Certifique-se de limpar seu projeto no android studio (ou eclipse),

Deve resolver seus problemas

Brendon Sled
fonte
2
A limpeza do seu projeto neste caso não funciona, especialmente se você acabou de baixar um novo SDK do Android, uma biblioteca de aplicativos app etc., pois os erros não se limpam magicamente sem encontrar os links ausentes para outras bibliotecas e / ou recursos do Android. A resposta de ReVerse é correta e mais completa para aqueles que não sabem resolver problemas com o mais recente download da API Android nível 21 por si mesmos.
ChuongPham
2

A atualização para o plugin gradle mais recente resolve meu problema:

classpath 'com.android.tools.build:gradle:0.13.+'
avianey
fonte
O 0.14.0 foi lançado há pouco tempo
loeschg
sim, eu ainda estava usando 0,12 ... talvez ele possa ajudar alguém a atualização para 0,13 ou 0,14
avianey
2

Depois de criar um segundo projeto no espaço de trabalho no eclipse, tive esse problema. Eu acredito que é porque eu o criei com uma versão diferente do SDK e isso escreveu a biblioteca android-support-v7-appcompat.

Tentei limpar tudo, mas sem sucesso. Por fim, a sugestão acima para editar project.properties e alterar target = android-21 e definir meu projeto para Android 5.0, corrigiu-o.

fórmica
fonte
2

O que eu recomendo é: (Isso funciona para mim depois de muitos dias com erros)

-Certifique-se de que você baixou:

- the Lastest SDK Platform from the latest Android version
- Android Suppor Librarie and Repository from EXTRAS 

-Recarregar o ADT

-Faça uma cópia de segurança do seu projeto.

-Você deve ter o ADT, a área de trabalho e o projeto que importaremos no mesmo disco (por exemplo, C: /)

  1. Agora exclua o aplicativo compat e seu projeto.

  2. No eclipse: Arquivo> Importar> Projeto existente do Android> Avançar> Procurar (a pasta em que você possui seu ADT) / sdk / extras / android / v7 / appcompat> Importar> Concluir

  3. Agora, no eclipse Package Explorer: android-support-v7-appcompat / libs / Make nos dois JARS: Clique com o botão direito do mouse em> Build Path> Add to Build Path

  4. Clique com o botão direito do mouse em libs / folder> Buil Path> Configure Build Path e verifique estes dois JARS> OK

  5. Na barra superior do eclipse> Projeto> Limpar

  6. Importar seu projeto> Arquivo> Importar> Procurar seu projeto> Concluir

  7. Agora, clique com o botão direito do mouse no arquivo de projeto e no android-support-v7-appcompat> Propriedades> Android> E selecione a API mais recente que aparece> OK

  8. Clique com o botão direito do mouse no arquivo de projeto> Propriedades> Android> Adicionar> android-support-v7-appcompat

  9. Na barra superior do eclipse> Projeto> Limpar

juldeh
fonte
2

Recebi o mesmo erro ao alterar a versão do SDK do Compile da API: 21 para API: 16. O problema era, versão appcompat . Se você precisar usar uma versão mais antiga da API do Android, precisará alterar também esta versão do appcompat. No meu caso ( para API: 16 ), eu tive que usar appcompat-v7: 19. + .

Então, substituo as dependências no build.gradle da seguinte maneira:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19.+'
}

E verifique se você tem versões mais antigas das versões appcompat no seu SDK insira a descrição da imagem aqui

mili
fonte
2

Eu estava atualizado com tudo e ainda recebi esse erro, não sei por que, mas acho que a imagem foi corrompida de uma maneira estranha e, depois de substituí-la, me livrei do erro. Pode valer a pena tentar com uma imagem diferente :)

DoruChidean
fonte
1

Meu problema era que eu tinha outras bibliotecas referenciadas pelo meu projeto e essas bibliotecas tinham outra versão do appcompat referenciada. Isto é o que eu fiz para resolver o problema:

(Você deve fazer backup do seu projeto antes de fazer isso)

1) Excluí todas as pastas de layout do appcompat (ex: / res / layout-v11).

2) Resolvidos os problemas que surgiam a partir disso, geralmente um erro no menu.xml

3) Volte ao projeto principal e adicione a biblioteca appcompat, clean e tudo funciona!

truque
fonte