Não é possível encontrar o Theme.AppCompat.Light for New Android ActionBar Support

354

Estou tentando implementar a nova biblioteca de suporte do ActionBar, lançada pelo Google há alguns dias. No passado, eu implementei o ActionBarSherlock com êxito, sem problemas, usando o mesmo método listado na página de configuração da Biblioteca de suporte do desenvolvedor do Google - usando o guia sobre como incluir os recursos (semelhante à maneira como o ActionBarSherlock o fez). Eu tenho o projeto da biblioteca carregado no meu próprio projeto como uma biblioteca também.

Eu posso dizer que a biblioteca está carregando bem. Quando, em vez de estender a Activity no meu MainActivity.java, mudei para estender o ActionBarActivity (conforme as instruções do Google), nenhum erro ocorre - e ele é importado corretamente.

Eu até tentei ignorando o arquivo style.xml e adicionando @style/Theme.AppCompat.Lightdiretamente na AndroidManifest.xml para ambos <application>e <activity>com android:theme="@style/ThemeAppCompat.Light"todas as tentativas resultantes no mesmo erro.

Agora, o problema é que não consigo mudar o tema, muito menos construir sem gerar um erro. Abaixo está o erro que estou recebendo, seguido pelo arquivo style.xml que mudei para usar o novo tema.

Tenho experiência moderada no trabalho com aplicativos Android e estou executando o Eclipse com a versão mais recente das Bibliotecas de Suporte e SDK compilando com a API 18 (Android 4.3).

Erro recebido durante a compilação

erro: Erro ao recuperar o pai do item: nenhum recurso encontrado que corresponda ao nome especificado '@ style / Theme.AppCompat.Light'. styles.xml / ActBarTest / res / values ​​line 3 Problema no Android AAPT

style.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.ProsoftStudio.ACTest" parent="@style/Theme.AppCompat.Light">
    </style>
</resources>

Alguma sugestão? Isso nunca foi um problema com o ActionBarSherlock. Quero trabalhar no uso desta nova biblioteca de suporte. Parece que o .jar está carregando, mas não os recursos.

Brandon Enriquez
fonte
11
Tente limpar o projeto, talvez você precisa recarregar as dependências para que os estilos de AppCompact pode recarregar bem
TheWizKid95
2
@ TheWizKid95 Eu fiz uma limpeza no meu aplicativo que estou tentando implementar e na biblioteca. Nenhum deles resultou em nenhum código alterado de acordo com o Eclipse e não corrigiu nenhum dos problemas.
precisa
Você adicionou uma biblioteca de suporte ao Resources? Adicionar jar a libs não é suficiente.
Gabriele Mariotti
@GabrieleMariotti Sim, eu adicionei os recursos e a biblioteca de projetos, especialmente conforme as instruções do Google.
22613 Brandon Enriquez
O que funcionou para mim foi adicioná-lo como um projeto ao espaço de trabalho. Apenas importar o jar e adicioná-lo ao buildpath não funcionou.
Johan

Respostas:

386

Você precisa fazer o seguinte:

  1. File->Import (android-sdk\extras\android\support\v7). Escolha "AppCompat"
  2. Project-> properties->Android. Na biblioteca de seções "Adicionar" e escolha "AppCompat"
  3. Isso é tudo!

Nota: se você estiver usando "android: showAsAction" no item de menu, precisará alterar o prefixo android como no exemplo http://developer.android.com/guide/topics/ui/actionbar.html

Svyatoslav Lobach
fonte
65
Isso não funciona para mim. Faço exatamente o que está escrito aqui, mas acabo com centenas de Nenhum recurso encontrado que corresponde a erros de nome específico. Recursos, que faltam, são estilos incluídos na API 11 e acima, mas isso deve funcionar na API 7. Existe alguma conexão que eu estou perdendo!?!
Apocalypz
5
Com um problema semelhante, o tema Theme.AppCompat.Light.NoActionBar não existe na minha biblioteca de aplicativos.
JMRboosties
9
Em File-Import, não consigo encontrar 'android-sdk'. Só vejo 'andoird'. Alguém?
21414 shaher eldad
2
apocalypz, acho que você está perdendo os recursos porque importou a biblioteca sem os recursos. aqui está o link para "Adicionando bibliotecas com recursos" developer.android.com/tools/support-library/…
Hades200621
11
Seguindo as etapas acima, adicione sdk \ extras \ android \ support \ v13android-support-v13.jar ao diretório libs do projeto que resolverá o problema.
Wasim A.
119

Se, como eu, você estiver seguindo o tutorial do Android em http://developer.android.com/training/basics/actionbar/setting-up.html e continuar recebendo esse erro, tente alterar o AppBaseThemeestilo em todos os styles.xmlarquivos. Em detalhe:

  1. No arquivo, res/values/styles.xmlaltere a linha:

    <style name="AppBaseTheme" parent="android:Theme.Light">

    para:

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
  2. No arquivo, res/values-v11/styles.xmlaltere a linha:

    <style name="AppBaseTheme" parent="android:Theme.Holo.Light">

    para:

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
  3. No arquivo, res/values-v14/styles.xmlaltere a linha:

    <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">

    para:

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">

Agora o aplicativo deve funcionar bem.

marco110
fonte
11
Sim, isso funcionou para mim. O ponto principal a ser observado é que no atributo pai "android:" prefixos incorporados em temas (estilos), enquanto um valor sem esse prefixo faz referência a seus próprios estilos ou estilos em quaisquer bibliotecas às quais você vinculou ... como suporte para android -v7-appcompat.
John Bentley
Não há res/values/styles.xmlem um novo projeto Android. Pelo menos não quando você o cria android create project.
precisa saber é o seguinte
Você começa a styles.xml quando você cria o projeto com Assistente selecionar controles de aplicativos de tela e ocultar completos
JJ_Coder4Hire
8
Nada funciona para mim ... 4 horas já desperdiçadas. Ainda recebo Nenhum recurso encontrado que corresponda ao nome (no 'tema' com o valor '@ style / Theme.AppCompat.Light'). Estou prestes a desistir.
c.fogelklou
2
Eu tinha acabado de mudar para o outro lado, e era assim que as coisas tinham que estar no meu projeto.
John
28

Esse é um problema que pode ocorrer no Android Studio se você modificar os módulos de estrutura do projeto. Nesse caso, pode ser necessário adicionar as dependências novamente. Em um editor de texto, edite o arquivo 'build.gradle' para incluir as dependências necessárias:

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

Isso deve atualizar seu arquivo '{your_project_name} .iml' com componentes lib:

<orderEntry type="library" exported="" name="appcompat-v7-19.0.1" level="project" />
David Douglas
fonte
11
Lembre-se de que existem 2 * arquivos .iml. Aquele com as entradas da biblioteca está contido na subpasta do projeto e possui um nome de arquivo em minúsculas.
David Douglas
2
Isso corrigiu meu problema. a adição do appcompat às dependências no build.gradle interno funcionou. Lamento dizer que editei manualmente para corresponder a outro projeto que quebrou as coisas!
JJ_Coder4Hire
28

Vou compartilhar minha experiência com esse problema. Eu estava ficando louco por causa disso, mas descobri que o problema era um bug no próprio Eclipse, e não no meu código: No eclipse, não é possível fazer referência a um projeto de biblioteca do Android em outro projeto do Android

Portanto, se você tiver a Biblioteca de Suporte Android na unidade C: e seu projeto na unidade D: no computador, o Eclipse não funcionará corretamente e não saberá onde está a Biblioteca de Suporte Android (o visto verde se transforma em cruz vermelha ) Para resolver isso, você precisa mover os dois projetos para o mesmo disco rígido.

DrFred
fonte
4
Obrigado. Esse foi o caso da minha situação. Na etapa 1 (Arquivo-> Importar (android-sdk \ extras \ android \ suporte \ v7). Escolha "appcompat"), é necessário verificar "copiar para a área de trabalho".
Hong
Eu enfrentei um problema semelhante. Muito obrigado, foi muito complicado
SILINIK
Mesmo problema no AndroidStudio. Passei apenas três horas tentando descobrir isso. Obrigado!
Ruben Martinez Jr.
Jup. Pode confirmar isso. O InTellJ tem exatamente o mesmo problema, pelo menos com AppCompat ... perdeu 4 horas com esse problema.
puelo
Esta foi a solução para mim também. Copiar o projeto appcompat_v7 para a mesma unidade que o projeto de destino e incluí-lo como lib fez com que funcionasse sem problemas.
MayaPosch
23

Fiz o seguinte no Eclipse com o projeto Android Support Library ( APL ) e o Main Project ( MP ):

  1. Assegurou que APL e MP tivessem o mesmo minSdkVersione targetSdkVersion.

  2. APL adicionado como uma dependência de compilação para MP :

    1. Entrando em "Propriedades> Caminho de Construção Java" do MP e, em seguida,

    2. Selecionando a guia "Projetos" e adicionando APL .

  3. Nas propriedades do MP , em "Android", foi adicionada uma referência ao APL na biblioteca.

1 e 2 obtiveram as referências às classes Java funcionando bem ... no entanto, eu ainda vi o erro no manifest.xmlfor MP ao tentar fazer referência a @style/Theme.AppCompat.Lightpartir do APL . Isso só desapareceu quando eu executei a etapa 3.

iogue
fonte
9
Definitivamente, use "@ style / Theme.AppCompat ..." em vez de "@android: style / Theme.AppCompat ...". Este mais o número 3 desta resposta resolveu meu problema.
precisa saber é
O ponto 2 parece estar incorreto. Isso leva a uma mensagem de log de erro de compilação, conforme descrito e corrigido aqui: stackoverflow.com/questions/18421274/…
OneWorld
18

É um pouco tarde, mas aqui está como eu o faço no AndroidStudio!

Clique com o botão direito do mouse no aplicativo para acessar as propriedades Clique com o botão direito do mouse no aplicativo para acessar as propriedades

Vá para Dependências e clique no sinal '+' e escolha a dependência da biblioteca Vá para Dependências e clique no sinal '+' e escolha a dependência da biblioteca Escolha appcompat-v7 Escolha appcompat-v7

user6327816
fonte
12

Solução IntelliJ IDEA.

1. Execute o Android SDK Manager e instale o mais recente SDK e Android Support Libarary . A versão do SDK e do Android Support Libarary deve ser a mesma ! 23 no meu caso. Outras variantes fornecerão os erros. 2. Altere a versão do SDK do seu projeto IDEA para a última que você instalou na etapa anterior. (ps. você não pode usar o Maven).
insira a descrição da imagem aqui

insira a descrição da imagem aqui

3. Adicione um novo módulo do curso existente ao seu projeto IDEA.
insira a descrição da imagem aqui

4. Adicione o projeto AppCompat. !!! Também deve estar no último SDK! (ps. Diga "Sim" em qualquer lugar do processo desta etapa)
insira a descrição da imagem aqui

5. Abra as configurações do seu módulo de projeto principal e adicione as próximas 3 dependências:

5.1 Dependência do módulo. Escolheu android-support-v7-appcompat
insira a descrição da imagem aqui

5.2 2 pc. Dependências da biblioteca. Adicione android-sdk \ extras \ android \ suporte \ v7 \ appcompat \ libs \ android-support-v4.jar e android-support-v4 \ android-support-v7-appcompat.jar
insira a descrição da imagem aqui

No total, será:
insira a descrição da imagem aqui

6. muito importante !!!
Adicione um tema com o prefixo @style (não outro!) .
insira a descrição da imagem aqui



Solução Android Studio.

1. Execute o Android SDK Manager e instale o mais recente SDK e Android Support Libarary . A versão do SDK e do Android Support Libarary deve ser a mesma ! 23 no meu caso. Outras variantes fornecerão os erros.
insira a descrição da imagem aqui

2. Adicione ao lado de build.gradle

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

PS Se você é novo no desenvolvimento do Android, eu recomendo que você mude para o Android Studio & Gradle agora - você terá a maneira mais simples de gerenciar seu aplicativo para Android.

Yuliia Ashomok
fonte
Melhor resposta que eu já encontrado em SO sobre android
Alex Jolig
10

Para Android Studio 1.2.2

Solte "android" do parentvalor do atributo:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>
mumush
fonte
7

você precisa de referência $ ANDROID_SDK / extras / android / support / v7 / appcompat

Crossle Song
fonte
Você se importa de entrar em mais detalhes sobre como exatamente fazer referência a isso? Já referenciei essa pasta exata como indicado nas instruções dos desenvolvedores do Android. Siga as instruções exatamente como indicado em seu site. Posso dizer que está sendo referenciado pelo menos parcialmente porque o ActionBarActivity está sendo estendido sem erros.
22613 Brandon Enriquez
3
referência appcompatcomo Biblioteca Android, o seu recurso principal projeto encontram-se tema de appcompat
Crossle Canção
Isso fez o truque. Eu estava fazendo isso anteriormente no Java Build Path.
22613 Brandon Enriquez
5

Para IntelliJ IDEA ou Android Studio:

Adicione isso ao arquivo de compilação app.gradle

dependencies {
    compile "com.android.support:appcompat-v7:21.0.+"
} 

Substitua -v:xx.0+, pelo seu destino de construção, se você tiver 19 plataformas, deve ser como:

dependencies {
    compile "com.android.support:appcompat-v7:19.0.+"
}
geniushkg
fonte
3

Siga as etapas do @rcdmk. Exclua o suporte ao Android v4.jar no SEU projeto. Está em conflito com a nova versão atualizada encontrada no appcompat.

back2back
fonte
3

Eu tive o mesmo problema e desperdicei minhas 4-5 horas por solução. Meu problema foi resolvido com;

  1. No gerenciador do SDK, exclua os pacotes "Biblioteca de suporte do Android" e "Repositório de suporte do Android".
  2. Reinstale "Android Support Library" e "Android Support Repository"
  3. Remova "android-support-v7-appcompat" ou "appcompat_v7 o que mais você tem no seu projeto.
  4. Importe android-support-v7-appcompat de "adt-bundle-windows-x86_64-20140702 \ sdk \ extras \ android \ support \ v7 \ appcompat"
  5. Selecione seu projeto e, no arquivo, escolha propriedades e localize o Java Build Path e, na guia "Projeto", exclua o que mais existe e, em seguida, adicione. e você deve ver "android-support-v7-appcompat", selecione e adicione-o à guia Projeto.
  6. Verifique seu arquivo project.properties abaixo dos arquivos do projeto, você verá assim; target = android-21 android.library.reference.1 = .. / android-support-v7-appcompat e verifique o arquivo AndroidManifest.xml se o destino for 21 ou o que mais você escolheu. Verifique também a referência da mesma biblioteca que você escolheu anteriormente.

Espero que você encontre sua solução.

syildizeli
fonte
11
O que me ajudou foi atualizar minha Biblioteca de Suporte Android usando o gerenciador SDK, excluir a biblioteca appcompat antiga da área de trabalho, reimportar a biblioteca appcompat recém-atualizada (copiar e copiar na área de trabalho) e compilar.
Varun
3

O meu problema foi resolvido através dos seguintes passos

  1. Arquivo-> Importar (android-sdk \ extras \ android \ support \ v7 \ appcompat)
  2. Clique com o botão direito do mouse em Projeto-> propriedades-> Android. Na biblioteca de seções "Adicionar" e escolha a biblioteca appcompat incluída na etapa 1
  3. Exclua todos os arquivos do diretório libs do projeto
  4. adicione o seguinte arquivo ao diretório libs do projeto <SDK-PATH>\extras\android\support\v13android-support-v13.jar

    Reinicie o Eclipse, se necessário. É isso aí. Seu problema deve desaparecer.

Wasim A.
fonte
feliz que ajuda a alguém :)
Wasim A.
2

trabalho:

<style name="MyApp" parent="Theme.AppCompat.Light">
</style>
<style name="MyApp" parent="@style/Theme.AppCompat.Light">
</style>
<style name="Theme.AppCompat.Light.MyApp">
</style>
Yin
fonte
2

Como a discagem de importação é diferente no Android Studio 1.0.1, não foi possível obter a versão do Svyatoslav Lobachs para funcionar.

Em vez disso, baixei o "Repositório de Suporte do Android" no SDK Manager. Então adicionado

dependencies {
...
compile "com.android.support:appcompat-v7:18.0.+"
}

para build.gradle. Trabalhou para mim.

qwertz
fonte
1

http://developer.android.com/tools/support-library/setup.html tem um bug. Em Property-> Java build path -> 'Project' e 'Order and Export', não deve haver nenhum jar. Removê-los e verificar 'Bibliotecas particulares do Android' e 'Dependências do Android' resolveram o meu problema.

Joe C
fonte
1

Tive o mesmo problema do OP depois de clicar com o botão direito do mouse no meu projeto e selecionar Fechar projetos não relacionados .

No meu caso, resolvi o problema reabrindo o projeto appcompat_v7 e limpando / reconstruindo os dois projetos.

proibição de geoengenharia
fonte
1

Aconteceu comigo quando o Eclipse (Luna) / AndroidSDK (não o Android Stduio) foi usado com as ferramentas e a biblioteca mais recentes a partir de 14 de janeiro de 2015 durante o projeto, como HelloWorld. Quando instalei essas ferramentas e fiz do HelloWorld o primeiro aplicativo, aceitei todos os padrões. - Este é o problema no meu caso.

Primeiro, verifique se a biblioteca "Android Support Library" está instalada ou não. Caso contrário, instale-o. Não está instalado por padrão. Você pode fazer tudo isso no "Android SDK manager" disponível no menu.

(Gerenciador de SDK do Android -> Extra -> Biblioteca de suporte do Android)

Bênçãos (devedor) <> <

Youngsup Kim
fonte
1

Solução mais rápida:

clique com o botão direito do mouse no projeto -> Ferramentas Android -> Adicionar biblioteca de suporte.

insira a descrição da imagem aqui

Jesus Dimrix
fonte
0

Eu cometi um erro muito bobo por isso. Quando eu estava recebendo o mesmo erro toda vez que eu não conseguia descobrir o que estava errado. então me ocorreu que depois de fechar todos os projetos no meu espaço de trabalho e esse era o tempo desde que todos os problemas começaram. Portanto, verifique se o seu "appcompat_v7" não está fechado. Se for, abra o projeto clicando duas vezes e limpe e construa seu projeto novamente. No meu caso, os erros se foram. Feliz codificação!

Riddhi Dudani
fonte
0

Não tenho certeza se a biblioteca de suporte da v13 estava disponível quando esta pergunta foi publicada, mas caso alguém ainda esteja com problemas, vi que a adição android-support-v13.jarcorrigirá tudo. Foi assim que eu fiz:

  1. Clique com o botão direito do mouse no projeto -> Propriedades
  2. Selecione Caminho de Construção Java na tabela de conteúdo do lado esquerdo
  3. Vá para a guia Bibliotecas
  4. Adicionar jars externos e selecione <your sdk path>\extras\android\support\v13\android-support-v13.jar
sdevikar
fonte
0

Para o Android Studio ou IntelliJ, tudo o que você precisa fazer é atualizar suas dependências no gradle.build. Eu usei o seguinte:

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

Não sei quantos de vocês notaram isso. A biblioteca de suporte "appcompat_v7" e seu projeto devem estar no mesmo diretório (refiro-me ao diretório da área de trabalho). Não limpe seu projeto até que ele seja livre de erros, caso contrário você terá problemas com o R.java

Isham
fonte
0

É melhor criar um novo projeto com qualquer nome e, em seguida, use appcompat_v7 que o programa faça novo.

Right Click Project-> properties->Android

Na biblioteca de seções Adde escolha a biblioteca appcompat.

Venda
fonte
0

no eclipse, clique com o botão direito do mouse em seu projeto -> selecione o caminho de construção e, em seguida, selecione o caminho de configuração. na janela, selecione o arquivo jar que você deseja e atualize seu projeto

Rahul
fonte
0

A solução aceita costumava funcionar para mim uma vez, mas não agora. Eu tive que recriar um hello-world do mesmo tipo (!) Em um novo espaço de trabalho, compilei e copiei todos os diretórios, incluindo .hge .hgignore. hg diffmostra:

-        android:targetSdkVersion="19" />
+        android:targetSdkVersion="21" />

Binary file libs/android-support-v4.jar has changed

Parece que o Eclipse deseja compilar para a API 21 e falha ao fazer qualquer coisa com a API 19. Darkly.

18446744073709551615
fonte
0

Se você adicionou a biblioteca appCompat e também forneceu a referência adequada da appCompat no local do SDK, tente "invalidar caches / Reiniciar" .
Você pode encontrá-lo no menu "Arquivo" no Android Studio.

Suraj Dubey
fonte
0

No meu caso, o problema ocorreu porque eu queria usar um SDK que não inclui a biblioteca necessária. Quando eu aumentei o min. No nível do SDK, o problema desapareceu. É claro que a inclusão direta da própria biblioteca também deve remover o erro.

Barbaros Erdogdu
fonte
0

Esqueça tudo. Basta usar a biblioteca appcompat baixada usando o Android Studio. Tem todas as definições ausentes. Não importa se você está usando no Eclipse ou não.

Rohit Rokde
fonte
0

Eu tive o mesmo problema e, mesmo depois de importar / adicionar um jar / library conforme mencionado nas respostas, ele não solucionaria o erro. Por frustração, criei um novo espaço de trabalho e criei um novo projeto para Android, e ele importou automaticamente o appcompat_v7 e não houve erros na limpeza e compilação. Não foi necessário importar um único jar / biblioteca manualmente. Apenas para sua informação, estou usando o eclipse Mars.1 Release (4.5.1) e estava enfrentando exatamente o mesmo problema toda vez que criava um novo projeto android.

API
fonte