Mensagem do LogCat: os recursos dos serviços do Google Play não foram encontrados. Verifique a configuração do seu projeto para garantir que os recursos sejam incluídos

317

Eu tenho um aplicativo que usa a API do Google Maps para Android v2. Adicionei o google-play-services_libprojeto de biblioteca ao meu espaço de trabalho e adicionei uma referência a ele no meu projeto de aplicativo, seguindo as instruções nestas páginas:

Tudo parece funcionar bem: o aplicativo exibe mapas e sobreposições com os marcadores padrão. Portanto, tenho certeza de que os serviços do Google Play e da API do Google Maps foram configurados corretamente.

No entanto, vejo essa mensagem na janela ADT LogCat sempre que a visualização do mapa é inicializada (no Nexus 7 de segunda geração):

The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.

O nível da mensagem é Erro e a tag é GooglePlayServicesUtil.

Isso parece benigno, pois meu aplicativo funciona bem. Mas o que posso fazer ou checar para tentar resolver qualquer que seja o problema?


Mais informações: sempre que a mensagem "Os recursos dos serviços do Google Play não foram encontrados" aparece no LogCat, ela é precedida por essas mensagens, que são avisos e marcadas ResourceType:

getEntry failing because entryIndex 906 is beyond type entryCount 3

Failure getting entry for 0x7f0b038a (t=10 e=906) in package 0 (error -2147483647)

FWIW, não consigo encontrar a constante 0x7f0b038a em nenhum lugar quando pesquiso os projetos, incluindo os arquivos gen / R.java.

Eu verifiquei o conteúdo do .apk gerado e inclui todos os recursos que estão no google-play-services_lib/resdiretório


Outra atualização: depois de adicionar o ActionBarSherlock e atualizar o targetSdkVersion no meu manifesto de 8 para 17, agora vejo outro erro na saída do LogCat:

Could not find class 'maps.af.k', referenced from method 'maps.ag.an.a'

Mais detalhes sobre esse problema podem ser encontrados aqui: O Google Maps funciona bem no Android, mas ainda recebo o erro "Não foi possível encontrar a classe 'maps.i.k', referenciada no método maps.z.ag.a"

E mais uma vez, o aplicativo parece funcionar muito bem. Talvez seja seguro ignorar esses "erros"?

Kristopher Johnson
fonte
1
Acontecendo o mesmo aqui, usando o Gradle + Android Studio! 08-06 19: 47: 00.376 2141-2141 / com.menor.android.assignment.tempos21 E / GooglePlayServicesUtil: Os recursos dos serviços do Google Play não foram encontrados. Verifique a configuração do seu projeto para garantir que os recursos sejam incluídos.
Cesards 6/08/2013
1
Tente limpar todos os projetos em seu espaço de trabalho (abaixo Project > Clean). Notei que isso às vezes corrige problemas de R.java/resource.
Connor Brinton
3
A mesma coisa está acontecendo aqui, limpo não ajudou. Eu creio que tudo começou depois que eu atualizei o material no gerenciador de Android SDK
CeeRo
8
A mesma coisa aqui (Eclipse também), provavelmente é por causa da atualização mais recente do SDK (22.0.5). Hoje, o Google Play Services foi atualizado para rev10, mas ainda tenho a mensagem de erro. O que é ainda pior; meu fragmento do Google Maps parou de funcionar. Ele não deseja exibir nenhum mapa, apenas uma tela azul sem fim.
Magnus Johansson
5
O Goggle diz "Você pode ignorar com segurança esta mensagem. Seu aplicativo ainda buscará e exibirá anúncios em banner".
sagus_helgy

Respostas:

50

Este é um erro na biblioteca de serviços do Google Play e está arquivado aqui na edição 755 .

Infelizmente, ainda não há solução.

Hisham Muneer
fonte
21
Esta postagem data de 2014, estou recebendo este erro agora. Esta postagem é relevante?
Talha
@ saithith estranho o suficiente, eu tive problemas no meu código, na inspeção e depuração eu descobri isso. Em vez de mostrar erro no meu código, ele travou no nível da API, provavelmente eu fiz um código incorreto adicionando try-catch em algum lugar que executava o código com força, eventualmente travando na chamada da API (ou na API). Corrigi o código e o erro desapareceu. Pelo menos é o que eu acho que aconteceu.
Talha
88

As Perguntas frequentes do SDK dos anúncios para celular do Google afirmam que:

Continuo recebendo o erro 'Os recursos dos serviços do Google Play não foram encontrados. Verifique a configuração do seu projeto para garantir que os recursos sejam incluídos. '

Você pode ignorar esta mensagem com segurança. Seu aplicativo ainda buscará e exibirá anúncios em banner.

Portanto, se você incluiu o google-play-services_lib corretamente e está recebendo anúncios, não precisa se preocupar (eu acho ...)

grebulon
fonte
1
talvez você possa ignorar, mas continuo inserindo um código que não existe, sempre que escolho depurar o aplicativo.
desenvolvedor android
E se eu não estiver usando anúncios? O Google Play Services ainda tentaria fazer o que é que gera a mensagem?
Kristopher Johnson
Vejo isso também em um aplicativo diferente, onde acabo de me registrar para receber as notificações por push do GCM e tudo parece estar funcionando bem.
grebulon
quando eu executar aplicativo no emulador anúncios injetados android está exibindo, mas se eu executar mesmo aplicativo no dispositivo android físico, então ele está exibindo tela em branco
Bharti Ladumor
Esta é a minha experiência e opinião também
Noor Hossain
36

Acabei de encontrar este problema esta manhã e parecia muito estranho, pois meu aplicativo estava funcionando bem até hoje. Eu estava recebendo exatamente a mesma mensagem "Os recursos dos serviços do Google Play não foram encontrados ...".

Tentei abrir o aplicativo regular do Google Maps para ver se conseguia minha localização, mas ela não foi encontrada. Mesmo depois de esperar 5 minutos, o que é tempo mais do que suficiente para obter normalmente um local até do provedor de serviços via torre de celular. Então, verifiquei os Serviços de Localização.

Enfim, o problema acabou sendo no meu S3 em Serviços de Localização -> Serviços de Localização do Google . Não foi verificado. As outras duas opções de localização foram marcadas ( Serviços de Localização VZW e Serviços GPS Independentes ), mas a última, Serviços de Localização Google, não. Depois de ativá-lo, o Google Maps comum pode encontrar minha localização e meu aplicativo pode encontrar minha localização e o problema desaparece.

A mensagem de erro aparece devido a:

mMap.setMyLocationEnabled(true);

quando o Google Location Services não está ativado.

Depois de fazer mais alguns testes, parece que se o local atual for nulo (não pode ser determinado de todas as fontes), você receberá esse erro ao tentar ativar o setMyLocationEnabled.

shroge
fonte
Essa é a raiz do problema, pelo que posso dizer também. Se você remover a chamada para setMyLocationEnabled (), não receberá mais o erro. Embora esteja listado como um erro, parece inofensivo, pois o aplicativo continua a funcionar bem e a funcionalidade para exibir minha localização no aplicativo também funciona bem. Não sei por que está aparecendo como um erro.
Guardius
19
setMyLocationEnabled não tem nada a ver com isso, pois em todos os meus dispositivos os Serviços de Localização estão ativados nas configurações. Suspeito que o último google-play-services.jar esteja quebrado.
IgorGanapolsky
Meu problema teve uma correção quase semelhante. Eu precisava ativar minha localização no Android 4.4. Na verdade, você vê o aplicativo que está solicitando o local, e meu aplicativo era um deles. Eu acho que tem a ver com setOnMyLocationChangeListener em vez de setMyLocationEnabled, que fornece esse erro. É necessário verificar algum tipo antes de solicitar a localização e verificar se os serviços de localização estão ativados. Deve ajudar
Jayshil Dave
32

Descompilei a biblioteca da revisão 14 dos serviços do Google Play. Eu acho que há um erro com.google.android.gms.common.GooglePlayServicesUtil.class. A sequência mencionada aparece apenas em um lugar:

public static int isGooglePlayServicesAvailable(Context context) {
    PackageManager localPackageManager = context.getPackageManager();
    try {
        Resources localResources = context.getResources();
        localResources.getString(R.string.common_google_play_services_unknown_issue);
    } catch (Throwable localThrowable1) {
        Log.e("GooglePlayServicesUtil", "The Google Play services resources were not found. "
                + "Check your project configuration to ensure that the resources are included.");
    }
....

Não há R.classno com.google.android.gms.commonpacote.

Existe um import com.google.android.gms.R.string;, mas nenhum uso string.something, então acho que esse é o erro - deve haver import com.google.android.gms.R;.

No entanto, o isGooglePlayServicesAvailablemétodo funciona conforme o esperado (exceto para registrar esse aviso), mas existem outros métodos nessa classe que usam sem importância R.class, portanto, pode haver outros erros. Embora os banners no meu aplicativo funcionem bem ...

kreker
fonte
20

Você precisa adicionar o google-play-services-libcomo um projeto de biblioteca. Eles atualizaram o SDK . Existem vários tutoriais por aí. Para o Eclipse , é fácil:

Right click project -> properties -> Android

Digite a descrição da imagem aqui

Para orientações mais detalhadas:

Importando o projeto de biblioteca

Como fazer o GoogleMaps rodar no emulador

bofredo
fonte
15
Conforme indicado na pergunta, adicionei o projeto da biblioteca google-play-services_lib e tudo está funcionando bem.
Kristopher Johnson
ok, você não disse explicitamente que usa o google-play-services-lib como um PROJETO, então tentei apontar isso. vou repensar o problema.
bofredo
4
FWIW, observei o .apk gerado e ele contém todos os recursos do projeto google-play-services_lib, por isso tenho certeza de que o projeto da biblioteca foi adicionado e referenciado corretamente.
Kristopher Johnson
2
Você sabe como fazer a operação equivalente no Android Studio? Eu não desejo para importá-lo com maven
Raphael Royer-Rivard
12

Eu também tive esse problema. O jeito que eu resolvi foi o seguinte:

  1. Exclua o projeto de biblioteca google-play-services_lib.
  2. Remova a referência (agora inválida) do google-play-services_lib em [seu projeto]> Propriedades> Android.
  3. Importou o projeto de biblioteca google-play-services_lib de android-sdk-x/extras/google_play_services/libproject. Ao importar um projeto, você obtém a opção "Copiar projeto no espaço de trabalho". Desmarque.
  4. Adicione a referência (agora válida) do google-play-services_lib ao seu projeto com [seu projeto]> Propriedades> Android.

Isso fez o truque para mim. Espero que ajude você também!

mDroidd
fonte
7
Apenas um FYI, você não deve importar os serviços do Google Play diretamente do SDK. Você deve manter a caixa "Copiar projeto no espaço de trabalho" VERIFICADA se o fizer, ou copiar o diretório no seu espaço de trabalho ou, melhor ainda, no seu sistema de controle de versão. Corremos para esse problema hoje, onde alguns desenvolvedores estavam usando uma versão mais antiga e alguns estavam usando a mais recente e o código do projeto estava falhando com a mais recente porque não tinha os metadados do Google Maps no Manifest.
Matt K
Você sabe como fazer a operação equivalente no Android Studio? Eu não desejo para importá-lo com maven
Raphael Royer-Rivard
4

Estou contando esse problema ao usar o Admob APENAS porque esqueci de escrever meu ID do bloco de anúncios @string.

Simon Pan
fonte
Onde você disse que se esqueceu de fazer isso? Estou criando minha visão programaticamente e passando esse ID programaticamente também.
Fran Marzoa
3

Eu tive o mesmo problema. No Console de APIs do Google, verifique se há apenas uma chave gerada para esse aplicativo. Eu tive um longo período em que migrei meu código de um PC para outro e assim por diante (ficou confuso) e tinha várias chaves para o meu projeto. As chaves mais antigas estão todas listadas como inativas na página do console da API, mas por algum motivo causaram um conflito. Depois de excluí-los completamente, executei novamente e funcionou.

joeblow23
fonte
3

Quanto a mim, resolvi esse problema da próxima maneira - como o developer.android.com diz, depois de adicionar o google-play-services_lib, você deve adicionar <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> no seu manifesto, mas no novo SDK você sempre receberá um erro:

Erro: nenhum recurso encontrado que corresponda ao nome fornecido (em 'value' com value '@ integer / google_play_services_version').

Para resolver esse erro, muitas pessoas aconselham a usar um valor bruto, 4030500 , em vez de @integer/google_play_services_version, mas está correto APENAS para a revisão 13 dos serviços do Google.

Se você usa uma versão ou versão mais antiga do Froyo (como eu), deve colocar outro valor nela. Para saber qual valor, basta abrir um manifesto dos serviços do Google Play e colar e copiar um valor version_code. Para serviços Froyo, é 3265130 . Depois de adicionar isso, parei de receber esse erro e finalmente comecei a receber coordenadas no meu aplicativo.

whizzzkey
fonte
4030500 me deu um erro. No entanto, o valor correto a ser utilizado foi fornecido no logcat.
Maverick
@Maverick, qual é a sua versão do google_play_services? Verifique-o no Android SDK Manager
whizzzkey 30/03
3

Para mim, a única solução de trabalho foi adicionar a biblioteca android-support-v7-appcompat também . Parece que essa biblioteca também é necessária para se livrar dessa mensagem. Desde então, meus aplicativos estão funcionando bem!

Espero que ajude!

usuario
fonte
Isso não funcionou para mim, para que sdk você compilou seu projeto?
JPM
2

Eu tive o mesmo problema aqui. Como Magnus disse acima, para mim isso estava acontecendo devido a uma atualização do SDK para a versão 22.0.5.

Depois de executar uma atualização completa no meu SDK do Android (incluindo o Google Play Services) e plug-ins do Android no Eclipse , pude usar a lib de serviços de reprodução no meu aplicativo.

Volceri
fonte
2

Para usuários do IntelliJ IDEA

Depois de lutar por alguns dias, a única maneira de fazê-lo funcionar no IntelliJ IDEA 13 era importar a biblioteca. Aqui estão todos os passos:

  1. Atualize o SDK do Android para instalar o serviço Play mais recente.
  2. Vou ao android-sdk-root/extras/google/google_play_services/libproject diretório
  3. cópia de google-play-services_lib e cole-o ao lado do seu projeto IntelliJ IDEA (alguns recomendam o uso desse diretório diretamente, mas aconselho a manter esse código limpo!).
  4. Abra as propriedades do projeto IntelliJ IDEA e adicione um novo módulo google-play-services_lib .
  5. Verifique se está marcado como uma biblioteca.
  6. Adicionar google-play-services_lib projeto da biblioteca como uma dependência ao projeto principal.
  7. Adicione google-play-servicesbiblioteca como uma biblioteca de dependência também.

No link que forneci abaixo, você pode ver uma imagem de como fica no meu IntelliJ IDEA 13. Não funcionaria sem adicionar apenas um desses dois.

PS. Eu fiz uma pergunta: por que o IntelliJ IDEA 13 exige que o projeto lib e a própria lib (google-play-service) sejam adicionados como uma dependência? , por que isso é obrigatório no IntelliJ IDEA 13 e por que não podemos importar apenas a biblioteca ou o projeto.

sandalone
fonte
Você poderia listar as manipulações exato que você está fazendo para importar o projeto google-play-services_lib como uma dependência do módulo (Eu uso Android Estúdio 0.3.6)
Raphael Royer-Rivard
@ RaphaelRoyer-Rivard Feito! Observe que essas etapas são para o IDEA 13, não para o Android Studio; portanto, algumas etapas podem ser diferentes, mas devem ser as mesmas.
sandalone
Na verdade, é a operação 4 e 5 que me causa problemas. Abro a Estrutura do projeto com F4, depois vou para Módulos, clico no + e há uma janela pop-up chamada Novo módulo. Referencio a pasta google-play-services_lib daqui (no campo Raiz do conteúdo)?
Raphael Royer-Rivard
@ RaphaelRoyer-Rivard Basta direcionar para a pasta e não para a biblioteca JAR. E adicione o projeto inteiro como um módulo. Foi isso que você perguntou?
sandalone
Bem, não é simples como selecionar uma pasta no meu caso. Devo escolher o tipo Módulo nesta lista ( Java, Maven, Gradle, JavaFX Application, Command Line App, Groovy, Griffon, Gradle: Android Module, Gradle: Android Project, Gradle: Java Library). E, em seguida, selecionando uma pasta no campo Content root. É Javao tipo de módulo certo para escolher?
Raphael Royer-Rivard
1

Eu também tive o mesmo problema. No início, estava funcionando bem, mas algum tempo depois eu desinstalei meu aplicativo completamente do meu dispositivo (eu estava executando no meu celular) e o executei novamente, e ele me mostra o mesmo erro.

Eu tinha todas as lib e recursos incluídos enquanto funcionava, mas ainda assim estava recebendo esse erro, removi todas as referências e lib da compilação do projeto, atualizei o serviço do google para a revisão 10, desinstalei o aplicativo completamente do dispositivo e depois adicionei novamente tudo recursos e bibliotecas e executou e começou a trabalhar novamente.

Uma coisa a ser observada aqui é que durante a execução, ainda estou vendo essa mensagem de erro no meu LogCat , mas no meu dispositivo está funcionando bem agora.

Pratap Singh
fonte
1

Eu também tive o mesmo problema. Também tentei procurar soluções, mas depois que não encontrei nenhuma das soluções funcionando, tentei reiniciar meu celular (dispositivo Android) e resolvi o problema.

Por favor, tente! Reinicie seu dispositivo móvel e o Eclipse para ficar do lado seguro e verifique se funciona.

Umang9
fonte
0

Para mim, excluir o seguinte código corrigiu-o!

mLocationClient.setMockMode(true);
Seïfane Idouchach
fonte
0

LE: Acabei de lembrar que era sobre o uso do Google Maps, então minha resposta realmente não responde à pergunta inicial, mas espero que algumas pessoas economizem horas / dias batendo a cabeça nas mesas se tiverem o mesmo problema com o Play Game Services .

Eu também tive esse erro incrivelmente enigmático. Não foi nada relacionado a serviços de localização para mim, mas com a leitura incorreta da documentação , mais precisamente a etapa 3, onde se recomenda adicionar o seguinte ao seu AndroidManifest.xml:

<meta-data android:name="com.google.android.gms.games.APP_ID"
    android:value="@string/app_id" />

Obviamente, você também deve ter o seguinte em AndroidManifest.xml

<meta-data android:name="com.google.android.gms.version"
   android:value="@integer/google_play_services_version"/>

Eu estava usando o que BaseGameActivityeles sugerem para usar quando você deseja implementar serviços de jogos, então fiquei um pouco surpreso por não ter funcionado imediatamente. Eu criei um módulo dedicado para uma cópia do google-play-services_lib, eu tinha a versão mais recente ( 4323000até a escrita) e defini isso como uma dependência do módulo para o meu módulo principal (usando o Android Studio aqui). Mas aquela pequena linha acima consertava tudo.

assíncrono
fonte
0

Eu tive o mesmo problema. Como disse Kristopher Johnson, referenciei o google-play-services_lib, mas não funcionou. Adicionei google_play_services_lib.jar (veja sua pasta SDK / google) nas propriedades do projeto / caminho de construção java / bibliotecas / dependências do Android e o erro desapareceu.

aprados
fonte
0

Eu tive exatamente o mesmo problema ao trabalhar com vários desenvolvedores. Se eu executar o projeto no meu ADT, ele funcionará bem, mas no deles não será ..

A resposta foi colocar a chave SHA-1 com o nome do pacote no console da API do Google e o meu. Como somos três desenvolvedores, precisamos inserir três chaves SHA-1.

Espero que lhe dê alguma inspiração ...

Noam
fonte
0

No meu caso, houve algum tipo de erro na minha implementação e diz que ele não pode encontrar o recurso para a mensagem de erro ser mostrada corretamente no LogCat . Quando corrigi esse erro na minha implementação, o problema do LogCat também desapareceu. Portanto, a menos que você esteja perdendo algum recurso realmente necessário, não se concentre em consertar os recursos ausentes, mas sim em sua implementação.

O erro, BTW, foi que eu estava executando anúncios no modo de depuração sem entrar no modo de teste de anúncios.

Lukas Hanacek
fonte
0

Acredito que esse seja um erro na atual biblioteca do Google Play Services, revisão 15, pois a causa subjacente parece ser causada pela falha na leitura de um arquivo de recurso:

W / ResourceType (25122): A solicitação do recurso 0x7f0c000d falhou porque é complexo
E / GooglePlayServicesUtil (25122): os recursos dos serviços do Google Play não foram encontrados. Verifique a configuração do seu projeto para garantir que os recursos sejam incluídos.

Parece que a biblioteca do Google Play Services tenta ler um arquivo de recurso e possui um genérico genérico que exibe essa mensagem de erro quando o recurso falha ao carregar. Isso corresponde ao que o kreker conseguiu descompilar da biblioteca e explicaria as mensagens de log.

Paul Lammertsma
fonte
0

Você sabe, eu não acho que seja um bug do sdk. "Os recursos dos serviços do Google Play não foram encontrados. Verifique a configuração do seu projeto para garantir que os recursos sejam incluídos" está exatamente correto. O arquivo jar colocado em / libs não contém recursos como * xml, * png etc. Os logs de erro significam isso. E se você já adicionou bibliotecas de suporte como v4 , v7-appcompat , v7-cardview , v7-recyclerview , v7-pallete ou v7-gridlayout , às vezes os logs indicam que os recursos estão em falta. Tudo isso ocorre porque esses recursos nos projetos não são importados. Portanto, importe projetos de suporte como a biblioteca o mais rápido possível. Obviamente, você primeiro faz o download desses projetos de suporte SDK Managerno item deextras


fonte
0

Eu tive o mesmo problema que eu criei a própria API para verificar se o serviço Google Play está instalado ou não, ele funciona bem para mim. Basta passar as informações do pacote do serviço Google Play, ele fornecerá o valor

abaixo está o código:

boolean estático público isGooglePlayServicesInstalled () { try { ApplicationInfo info = NativeActivity . ATUAL . getPackageManager (). getApplicationInfo ( "com.google.android.gms" , 0 );

LOG.d(LOG_IDENTIFIER, "info : "+ info); return true; } catch(PackageManager.NameNotFoundException e) { e.printStackTrace(); LOG.e(LOG_IDENTIFIER, "NameNotFoundException : "+ e.getMessage()); } return false; }

Syed
fonte