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?
Respostas:
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
extras
e oAndroid 5.0 SDK
via SDK-Manager.Android Studio
Abra o
build.gradle
arquivo do seu módulo de aplicativo e mudecompileSdkVersion
para 21. Não é necessário alterar atargetSdkVersion
versã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:
Certifique-se de sincronizar seu projeto posteriormente.
Eclipse
Ao usar o
v7-appcompat
no Eclipse, você deve usá-lo como um projeto de biblioteca. Não basta copiar o * .jar na sua/libs
pasta. 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
/res
pasta estão sublinhadas em vermelho devido a erros como o seguinte:Solução
A única coisa que você precisa fazer é abrir o
project.properties
arquivoandroid-support-v7-appcompat
e alterar o destino detarget=android-19
paratarget=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 oappcompat
como um módulo. Leia mais sobre isso neste StackO-Post (clique) .( Nota: se você estiver usando apenas o que
.jar
você usaráNoClassDefFoundErrors
no Runtime )Ao tentar criar o projeto, você encontrará problemas nas
res/values-v**
pastas. Sua janela de mensagem exibirá algo como o seguinte:Solução
Clique com o botão direito do mouse no
appcompat
módulo -> Abrir Configurações do Módulo (F4) -> [Guia Dependency] Selecione Android API 21 Platform no menu suspenso -> AplicarEm seguida, basta reconstruir o projeto (Build -> Rebuild Project) e você estará pronto.
fonte
Provavelmente, porque você não configurou seu
compileSdkVersion
21 no arquivo build.gradle. Você provavelmente também quer mudartargetSdkVersion
para 21.Isso requer que você baixe as atualizações mais recentes do SDK para começar.
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!
fonte
`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`
fonte
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>
Isso também ajuda a resolver seu problema, depende apenas do que você deseja alcançar.
fonte
Eu encontrei esse problema com o play-services: 5.0.89. A atualização para o 6.1.11 resolveu o problema.
fonte
No Android Studio, eu estava tentando definir o
compileSdkVersion
etargetSdkVersion
para19
.Minha solução foi substituir na parte inferior
build.gradle
, a partir disso:Para a versão mais antiga da biblioteca appcompat:
fonte
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:
O jar foi para a pasta Android Dependencies e esse erro foi corrigido.
fonte
Certifique-se de limpar seu projeto no android studio (ou eclipse),
Deve resolver seus problemas
fonte
A atualização para o plugin gradle mais recente resolve meu problema:
fonte
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.
fonte
O que eu recomendo é: (Isso funciona para mim depois de muitos dias com erros)
-Certifique-se de que você baixou:
-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: /)
Agora exclua o aplicativo compat e seu projeto.
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
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
Clique com o botão direito do mouse em libs / folder> Buil Path> Configure Build Path e verifique estes dois JARS> OK
Na barra superior do eclipse> Projeto> Limpar
Importar seu projeto> Arquivo> Importar> Procurar seu projeto> Concluir
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
Clique com o botão direito do mouse no arquivo de projeto> Propriedades> Android> Adicionar> android-support-v7-appcompat
Na barra superior do eclipse> Projeto> Limpar
fonte
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:
E verifique se você tem versões mais antigas das versões appcompat no seu SDK
fonte
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 :)
fonte
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!
fonte