web-dev-qa-db-fra.com

Message LogCat: Les ressources des services Google Play sont introuvables. Vérifiez la configuration de votre projet pour vous assurer que les ressources sont incluses

J'ai une application qui utilise l'API Google Maps Android v2. J'ai ajouté le projet de bibliothèque google-play-services_lib à mon espace de travail et y a ajouté une référence à partir de mon projet d'application, en suivant les instructions de ces pages:

Tout semble bien fonctionner: l'application affiche des cartes et des superpositions avec les marqueurs par défaut. Je suis donc pratiquement sûr que les services Google Play et l'API Google Maps sont correctement configurés.

Cependant, je vois ce message dans la fenêtre ADT LogCat à chaque initialisation de la vue cartographique (sur un Nexus 7 de 2e génération):

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

Le niveau du message est Error et la balise est GooglePlayServicesUtil.

Cela semble bénin, car mon application fonctionne bien. Mais que puis-je faire ou vérifier pour essayer de résoudre le problème?


Informations complémentaires: chaque fois que le message "Les ressources des services Google Play n'ont pas été trouvées" apparaît dans LogCat, il est précédé de ces messages, qui sont des avertissements et étiquetés 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, je ne trouve nulle part la constante 0x7f0b038a lorsque je recherche les projets, y compris les fichiers gen/R.Java.

J'ai vérifié le contenu du fichier .apk généré, qui inclut toutes les ressources du répertoire google-play-services_lib/res.


Une autre mise à jour: après avoir ajouté ActionBarSherlock et mis à jour le targetSdkVersion dans mon manifeste de 8 à 17, je vois maintenant une autre erreur dans la sortie LogCat:

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

Plus de détails sur ce problème peuvent être trouvés ici: Google Maps fonctionne bien sur Android mais je reçois toujours un message d'erreur "Impossible de trouver la classe 'maps.i.k', référencée à partir de cartes de méthode. z.ag.a "

Et encore une fois, l'application semble bien fonctionner. Peut-être qu'il est prudent d'ignorer ces "erreurs"?

315
Kristopher Johnson

Il s'agit d'un bogue dans la bibliothèque de services Google Play. Il est classé ici sous numéro 755 .

Malheureusement, il n'y a pas encore de solution.

49
Hisham Muneer

FAQ du SDK Google Mobile Ads indique que:

L'erreur continue à apparaître: "Les ressources des services Google Play n'ont pas été trouvées. Vérifiez la configuration de votre projet pour vous assurer que les ressources sont incluses. '

Vous pouvez ignorer ce message en toute sécurité. Votre application continuera à récupérer et à diffuser des bannières publicitaires.

Donc, si vous avez correctement inclus google-play-services_lib et que vous obtenez des publicités, vous n'avez rien à craindre (je suppose ...)

89
grebulon

Je viens de rencontrer ce problème ce matin et semblais très étrange puisque mon application fonctionnait bien jusqu'à aujourd'hui. Je recevais exactement le même message "Les ressources des services Google Play n'ont pas été trouvées ...".

J'ai essayé d'ouvrir l'application Google Maps habituelle pour voir si je pouvais obtenir ma position, mais elle ne la trouverait pas. Même après une attente de 5 minutes, ce qui est plus que suffisant pour obtenir normalement une localisation même du fournisseur de service via une tour de téléphonie cellulaire. J'ai donc vérifié les services de localisation.

Quoi qu'il en soit, le problème s'est avéré être celui de mon S3 sous Services de localisation -> Services de localisation Google. Ce n'était pas vérifié. Les deux autres options de localisation ont été cochées (Services de localisation VZW et Services GPS autonomes), mais la dernière, Services de localisation Google, ne l’était pas. Après avoir activé cette fonction, Google Maps normal pourrait trouver ma position et mon application pourrait localiser ma position et le problème disparaîtrait.

Le message d'erreur apparaît en raison de:

mMap.setMyLocationEnabled(true);

lorsque Google Location Services n’est pas activé.

Après avoir effectué quelques tests supplémentaires, il semble que si l'emplacement actuel est null (vous ne pouvez pas le déterminer à partir de toutes les sources), vous obtiendrez cette erreur en essayant d'activer setMyLocationEnabled.

36
shroge

J'ai décompilé la bibliothèque de révision 14 des services Google Play. Je pense qu'il y a un bug dans com.google.Android.gms.common.GooglePlayServicesUtil.class. La chaîne susmentionnée apparaît uniquement à un endroit:

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.");
    }
....

Il n'y a pas de package R.class dans com.google.Android.gms.common.

Il y a un import com.google.Android.gms.R.string;, mais aucune utilisation de string.something, donc je suppose que c'est l'erreur - il devrait y avoir import com.google.Android.gms.R;.

Néanmoins, la méthode isGooglePlayServicesAvailable fonctionne comme prévu (sauf pour consigner cet avertissement), mais il existe d'autres méthodes dans cette classe, qui utilisent R.class sans importation, de sorte qu'il peut y avoir d'autres erreurs. Bien que les bannières dans mon application fonctionne bien ...

32
kreker

Vous devez ajouter le google-play-services-lib en tant que projet de bibliothèque. Ils ont mis à jour le SDK . Il y a plusieurs tutoriels autour. Pour Eclipse c'est facile:

Right click project -> properties -> Android

Enter image description here

Pour des procédures plus détaillées:

Importer la bibliothèque-projet

Comment faire fonctionner GoogleMaps sur un émulateur

20
bofredo

J'ai eu ce problème aussi. La façon dont j'ai résolu le problème était la suivante:

  1. Supprimez le projet de bibliothèque google-play-services_lib.
  2. Supprimez la référence google-play-services_lib (maintenant invalide) dans [votre projet]> Propriétés> Android.
  3. Importé le projet de bibliothèque google-play-services_lib de Android-sdk-x/extras/google_play_services/libproject. Lorsque vous importez un projet, vous obtenez l'option "Copier le projet dans l'espace de travail". Décochez-le.
  4. Ajoutez la référence (désormais valide) google-play-services_lib à votre projet avec [votre projet]> Propriétés> Android.

Cela a fait le tour pour moi. J'espère que ça vous aide aussi!

12
mDroidd

Je rencontre ce problème lorsque j'utilise Admob JUST, car j'ai oublié d'écrire mon ID de bloc d'annonces dans @string.

4
Simon Pan

Pour moi, la seule solution efficace était de ajoutez également la bibliothèque Android-support-v7-appcompat. Il semble que cette bibliothèque soit également nécessaire pour se débarrasser de ce message. Depuis lors, mes applications fonctionnent bien!

J'espère que ça aide!

3
Nick

Quant à moi, j’ai résolu ce problème de la manière suivante - comme le dit développeur.Android.com, après avoir ajouté google-play-services_lib, vous devez ajouter <meta-data Android:name="com.google.Android.gms.version" Android:value="@integer/google_play_services_version" /> dans votre manifeste, mais vous obtiendrez toujours le nouveau SDK. une erreur:

Erreur: Aucune ressource trouvée qui correspond au nom donné (à "valeur" avec la valeur "@ entier/version de google_play_services").

Pour résoudre cette erreur, de nombreuses personnes conseillent d'utiliser une valeur brute, 4030500 , au lieu de @integer/google_play_services_version, mais elle est correcte UNIQUEMENT pour la révision des services Google. 13.

Si vous utilisez une version antérieure ou une version antérieure de Froyo (comme moi), vous devez lui attribuer une autre valeur. Pour savoir quelle valeur vous devez mettre, ouvrez simplement un manifeste de services Google Play et copiez-collez une valeur version_code. Pour les services Froyo, il s’agit du 3265130 . Après avoir ajouté ceci, j'ai cessé d’obtenir cette erreur et j’ai enfin commencé à recevoir les coordonnées dans mon application.

3
whizzzkey

J'ai eu le même problème. Dans la console des API Google, vous devez vérifier qu’une seule clé est générée pour cette application. Il y a eu un moment où j'ai migré mon code d'un PC à un autre, et ainsi de suite (cela s'est sali), et j'avais plusieurs clés pour mon projet. Les anciennes clés sont toutes répertoriées comme inactives sur la page de la console de l’API, mais pour une raison quelconque ont provoqué un conflit. Après les avoir complètement supprimés, je l'ai relancé et cela a fonctionné.

3
joeblow23

J'ai eu le même problème ici. Comme Magnus l’a dit plus haut, cela m’était dû à une mise à jour du SDK vers la version 22.0.5.

Après avoir effectué une mise à jour complète dans mes Android SDK (services Google Play compris) et Android dans Eclipse , je a pu utiliser les services de jeu lib dans mon application.

2
Volceri

Pour IntelliJ IDEA utilisateurs

Après avoir lutté pendant quelques jours, le seul moyen de le faire fonctionner dans IntelliJ IDEA 13 était d’importer la bibliothèque. Voici toutes les étapes:

  1. Mettez à jour Android SDK pour que le dernier service de lecture soit installé.
  2. Accédez au répertoire Android-sdk-root/extras/google/google_play_services/libproject.
  3. Copiez google-play-services_lib et collez-le à côté de votre projet IntelliJ IDEA (certains recommandent d’utiliser ce répertoire directement, mais je vous conseille de garder ce code propre!).
  4. Ouvrez les propriétés du projet IntelliJ IDEA et ajoutez un nouveau module google-play-services_lib.
  5. Vérifiez si elle est marquée comme une bibliothèque.
  6. Ajoutez le projet de bibliothèque google-play-services_lib en tant que dépendance du projet principal.
  7. Ajoutez également la bibliothèque google-play-services en tant que bibliothèque de dépendances.

Sur le lien que j'ai fourni ci-dessous, vous pouvez voir une image de l'apparence de mon IntelliJ IDEA 13. Cela ne fonctionnerait pas sans ajouter un seul de ces deux éléments.

PS J'ai posé une question Pourquoi IntelliJ IDEA 13 requiert-il à la fois que lib project et lib lui-même (google-play-service) soient ajoutés en tant que dépendance?, pourquoi est-ce indispensable dans IntelliJ IDEA 13, et pourquoi nous ne pouvons importer que la bibliothèque ou le projet.

2
sandalone

J'ai aussi eu le même problème. J'ai également essayé de rechercher des solutions, mais après ne pas avoir trouvé l'une des solutions, j'ai essayé de redémarrer mon mobile (appareil Android), ce qui a résolu le problème.

S'il vous plaît, essayez-le! Redémarrez votre appareil mobile et Eclipse pour être sûr et vérifiez si cela fonctionne.

1
Umang9

J'ai aussi eu le même problème. Au début, cela fonctionnait bien à ce moment-là, mais un peu plus tard, j’ai désinstallé complètement mon application de mon appareil (je l’exécutais sur mon mobile), puis je l’ai réexécutée, et la même erreur s’affiche.

J'avais toutes les ressources et les ressources incluses car cela fonctionnait, mais j'avais toujours cette erreur, j'ai donc supprimé toutes les références et les bibliothèques de la construction de mon projet, mis à jour le service Google à la révision 10, désinstallé complètement l'application du périphérique, puis ajouté à nouveau tous les éléments. ressources et libs et couru et il a commencé à fonctionner à nouveau.

Une chose à noter ici, lors de l’exécution, je vois toujours ce message d’erreur dans mon LogCat , mais cela fonctionne correctement sur mon appareil.

1
Pratap Singh

J'ai eu exactement le même problème lorsque je travaillais avec plusieurs développeurs. Si je lance le projet à partir de mon ADT cela fonctionne bien, mais de leur côté, ce n'est pas ..

La réponse a été de mettre leur clé SHA-1 avec le nom du paquet dans console Google API ainsi que la mienne. Nous sommes trois développeurs, nous avons donc dû mettre trois clés SHA-1.

J'espère que ça vous inspire ...

0
Noam

LE: Je viens de me rappeler que c'était à propos de Google Maps. Ma réponse ne répond donc pas vraiment à la question initiale, mais j'espère que certaines personnes économiseront des heures et des jours en se frappant la tête si elles rencontrent le même problème avec Play Game Services. .

Moi aussi j'ai eu cette erreur incroyablement cryptique. Pour moi, ce n'était pas lié aux services de localisation, mais sans lire correctement la documentation , plus précisément l'étape 3, où il est dit d'ajouter ce qui suit à votre AndroidManifest.xml:

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

Vous devez évidemment aussi avoir les éléments suivants dans AndroidManifest.xml

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

J'utilisais la BaseGameActivity qu'ils suggèrent d'utiliser lorsque vous souhaitez implémenter des services de jeu. J'ai donc été un peu surprise que cela ne fonctionne pas tout de suite. J'ai créé un module dédié pour une copie du google-play-services_lib, je possédais la dernière version (4323000 au moment de l'écriture) et je l'avais définie comme dépendance du module par rapport à mon module principal (en utilisant Android Studio ici). Mais cette petite ligne ci-dessus a tout corrigé.

0
async

J'ai eu le même problème que j'ai créé propre API pour vérifier si le service de jeu de Google est installé ou non, cela fonctionne très bien pour moi. Il suffit de passer les informations sur les paquets du service Google Play, cela vous donnera la valeur

ci-dessous est le code:


public statique booléen isGooglePlayServicesInstalled () { essayer { infoInfo = NativeActivity.CURRENT.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; }
0
Syed

Pour moi, la suppression du code suivant a corrigé le problème!

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

Je pense qu'il s'agit d'un bogue de la révision 15 de la bibliothèque de services Google Play actuelle, car la cause sous-jacente semble être due à l'incapacité de lire un fichier de ressources:

W/ResourceType (25122): La demande de ressource 0x7f0c000d a échoué car elle est complexe
E/GooglePlayServicesUtil (25122): Les ressources des services Google Play sont introuvables. Vérifiez la configuration de votre projet pour vous assurer que les ressources sont incluses.

Il semble que la bibliothèque de services Google Play tente de lire un fichier de ressources et possède un fourre-tout générique qui affiche ce message d'erreur lorsque le chargement de la ressource ne parvient pas. Cela correspond à ce que kreker a réussi à décompiler à partir de la bibliothèque et expliquerait les messages du journal.

0
Paul Lammertsma

Vous savez, je ne pense pas que ce soit un bug de sdk. "Les ressources des services Google Play sont introuvables. Vérifiez la configuration de votre projet pour vous assurer que les ressources sont incluses" est tout à fait correct. Le fichier jar placé dans votre/libs ne contient aucune ressource telle que * xml, * png, etc. Les journaux des erreurs le signifient. Et si vous avez déjà ajouté des bibliothèques de support telles que v4 , v7-appcompat , v7-cardview , v7-recyclage , v7-pallete ou v7-gridlayout , parfois des journaux qui impliquent que les ressources sont en bref se produire. Tout cela parce que les ressources des projets ne sont pas importées. Donc, importez des projets de support en tant que bibliothèque ASAP. Bien sûr, vous téléchargez d’abord ces projets de support via SDK Manager à la rubrique extras

0
user2716622

J'ai eu le même problème. Comme Kristopher Johnson l'a dit, j'ai fait référence à google-play-services_lib, mais cela n'a pas fonctionné. J'ai ajouté google_play_services_lib.jar (regardez votre dossier SDK/google) sous Propriétés du projet/Chemin de construction Java/Bibliothèques/Dépendances et erreurs Android disparues.

0
aprados

Dans mon cas, cela signifiait qu'il y avait une sorte d'erreur dans mon implémentation, et cela indiquait qu'il ne pouvait pas trouver la ressource pour que le message d'erreur soit correctement affiché dans LogCat . Lorsque j'ai corrigé cette erreur dans mon implémentation, le problème de LogCat avait également disparu. Donc, à moins que vous ne manquiez une ressource vraiment nécessaire, vous ne devriez pas vous concentrer sur la réparation des ressources manquantes, mais plutôt réparer votre implémentation.

L’erreur, BTW, c’est que j’ai diffusé des annonces en mode débogage sans passer en mode de test des annonces.

0
Lukas Hanacek