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

317

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

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

Cependant, je vois ce message dans la fenêtre ADT LogCat chaque fois que la vue de la carte est initialisée (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 de message est Erreur 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?


Plus d'informations: Chaque fois que le message "Les ressources des services Google Play sont introuvables" 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é, et il inclut toutes les ressources qui se trouvent dans le google-play-services_lib/resrépertoire.


Une autre mise à jour: Après avoir ajouté ActionBarSherlock et mis à jour la 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 une erreur "Impossible de trouver la classe 'maps.i.k', référencée à partir de la méthode maps.z.ag.a"

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

Kristopher Johnson
la source
1
C'est la même chose ici, en utilisant Gradle + Android Studio! 08-06 19: 47: 00.376 2141-2141 / com.menor.android.assignment.tempos21 E / GooglePlayServicesUtil: les ressources des services Google Play sont introuvables. Vérifiez la configuration de votre projet pour vous assurer que les ressources sont incluses.
cesards
1
Essayez de nettoyer tous les projets de votre espace de travail (sous Project > Clean). J'ai remarqué que cela résout parfois les problèmes de R.java/resource.
Connor Brinton
3
La même chose se passe ici, nettoyer n'a pas aidé. Je pense que cela a commencé après avoir mis à jour des choses dans le gestionnaire Android SDK
CeeRo
8
Même chose ici (Eclipse également), c'est très probablement à cause de la dernière mise à jour du SDK (22.0.5). Aujourd'hui, les services Google Play ont été mis à jour vers la version 10, mais j'ai toujours le message d'erreur. Ce qui est encore pire; mon fragment Google Maps a cessé de fonctionner Il ne veut afficher aucune carte, seulement une toile bleue sans fin.
Magnus Johansson
5
Google Goggle "Vous pouvez ignorer ce message en toute sécurité. Votre application va toujours récupérer et diffuser des bannières publicitaires."
sagus_helgy

Réponses:

50

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

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

Hisham Muneer
la source
21
Ce message remonte à 2014, je reçois cette erreur en ce moment, ce message est-il pertinent?
Talha
@sachithkn assez bizarre, j'ai eu des problèmes dans mon code, lors de l'inspection et du débogage, j'ai découvert cela. Au lieu d'afficher une erreur dans mon code, il s'est écrasé au niveau de l'API, j'ai probablement fait du mauvais code en ajoutant un try-catch quelque part qui a forcément exécuté le code, finissant par se planter à l'appel de l'API (ou dans l'API). J'ai donc corrigé mon code et l'erreur a disparu. C'est du moins ce que je pense être arrivé.
Talha
88

La FAQ du SDK Google Mobile Ads indique que:

Je reçois toujours l'erreur "Les ressources des services Google Play sont introuvables. 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 récupérera et diffusera toujours des bannières publicitaires.

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

grebulon
la source
1
vous pouvez peut-être ignorer, mais je continue à entrer dans un code qui n'existe pas, chaque fois que je choisis de déboguer l'application.
développeur android
Et si je n'utilise pas d'annonces? Les services Google Play essaient-ils toujours de faire quoi que ce soit qui génère le message?
Kristopher Johnson
Je vois cela aussi dans une autre application où je viens de m'inscrire aux notifications push GCM, et tout semble bien fonctionner.
grebulon
lorsque j'exécute une application dans des publicités injectées par un émulateur Android, mais si
j'exécute la
C'est mon expérience et mon opinion aussi
Noor Hossain
36

Je viens de rencontrer ce problème ce matin et semblait très étrange car mon application fonctionnait bien jusqu'à aujourd'hui. J'obtenais exactement le même message "Les ressources des services Google Play sont introuvables ...".

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

Quoi qu'il en soit, le problème s'est avéré être sur mon S3 sous Services de localisation -> Services de localisation Google . Cela n'a pas été vérifié. Les deux autres options de localisation ont été vérifiées ( VZW Location Services et Standalone GPS Services ), mais la dernière, Google Location Services ne l'a pas été. Après avoir activé cette fonction, Google Maps standard pourrait trouver ma position et mon application pourrait trouver ma position et le problème a disparu.

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

mMap.setMyLocationEnabled(true);

lorsque les services de localisation Google ne sont pas activés.

Après avoir effectué quelques tests supplémentaires, il semble que si l'emplacement actuel est nul (ne peut pas être déterminé à partir de toutes les sources), vous obtiendrez cette erreur lorsque vous essayez d'activer setMyLocationEnabled.

shroge
la source
C'est la racine du problème d'après ce que je peux dire également. Si vous supprimez l'appel de setMyLocationEnabled (), vous n'obtiendrez plus l'erreur. Même s'il est répertorié comme une erreur, il semble inoffensif car l'application continue de fonctionner correctement et la fonctionnalité permettant d'afficher ma position dans l'application continue également à fonctionner correctement. Je ne sais pas pourquoi cela apparaît comme une erreur.
Guardius
19
setMyLocationEnabled n'a rien à voir avec cela, car sur tous mes appareils, les services de localisation sont activés dans les paramètres. Je soupçonne que le dernier google-play-services.jar est cassé.
IgorGanapolsky
Mon problème avait une solution presque similaire dont j'avais besoin pour activer ma position dans Android 4.4.Vous voyez en fait l'application qui demande la localisation, et mon application était l'une d'entre elles. Je suppose que cela a à voir avec setOnMyLocationChangeListener plutôt qu'avec setMyLocationEnabled qui donne cette erreur. Il doit y avoir une vérification avant de pouvoir demander l'emplacement et vérifier si les services de localisation sont activés. Devrait aider
Jayshil Dave
32

J'ai décompilé la bibliothèque de révision 14 des services Google Play. Je pense qu'il y a un bug com.google.android.gms.common.GooglePlayServicesUtil.class. La chaîne susmentionnée n'apparaît qu'à un seul 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 R.classen a pas dans le com.google.android.gms.commonpaquet.

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

Néanmoins, la isGooglePlayServicesAvailableméthode fonctionne comme prévu (à l'exception de la journalisation de cet avertissement), mais il existe d'autres méthodes dans cette classe, qui utilise non importé R.class, il peut donc y avoir d'autres erreurs. Bien que les bannières dans mon application fonctionnent bien ...

kreker
la source
20

Vous devez ajouter le en google-play-services-libtant que projet de bibliothèque. Ils ont mis à jour le SDK . Il existe plusieurs didacticiels. Pour Eclipse, c'est simple:

Right click project -> properties -> Android

Entrez la description de l'image ici

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

Importation du projet de bibliothèque

Comment faire fonctionner GoogleMaps sur l'émulateur

bofredo
la source
15
Comme indiqué dans la question, j'ai ajouté le projet de bibliothèque google-play-services_lib, et tout fonctionne bien.
Kristopher Johnson
ok, vous n'avez pas dit explicitement que vous utilisez le google-play-services-lib en tant que PROJET, j'ai donc essayé de le signaler. je repenserai le problème.
bofredo
4
FWIW, j'ai regardé le .apk généré, et il contient toutes les ressources du projet google-play-services_lib, donc je suis presque sûr que le projet de bibliothèque est ajouté et référencé correctement.
Kristopher Johnson
2
Savez-vous comment effectuer l'opération équivalente dans Android Studio? Je ne souhaite pas l'importer avec maven
Raphael Royer-Rivard
12

J'avais aussi ce problème. La façon dont je l'ai résolu était la suivante:

  1. Supprimez le projet de bibliothèque google-play-services_lib.
  2. Supprimez la référence (désormais invalide) google-play-services_lib dans [votre projet]> Propriétés> Android.
  3. Importation du projet de bibliothèque google-play-services_lib à partir 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ÉCHECQUEZ-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 l'affaire pour moi. J'espère que ça vous aide aussi!

mDroidd
la source
7
Juste pour info, vous ne devez pas importer les services google play directement depuis le SDK. Vous devriez garder la case "Copier le projet dans l'espace de travail" cochée si vous le faites, ou copier le répertoire dans votre espace de travail, ou mieux encore dans votre système de contrôle de version. J'ai analysé ce problème aujourd'hui, où certains développeurs utilisaient une version plus ancienne et certains utilisaient la dernière et que le code du projet échouait avec la dernière car il ne contenait pas les métadonnées google maps nouvellement requises dans le manifeste.
Matt K
Savez-vous comment effectuer l'opération équivalente dans Android Studio? Je ne souhaite pas l'importer avec maven
Raphael Royer-Rivard
4

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

Simon Pan
la source
Où avez-vous dit que vous avez oublié de faire cela? Je crée mon avis par programme et je passe aussi un tel identifiant par programme.
Fran Marzoa
3

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

joeblow23
la source
3

Quant à moi, j'ai résolu ce problème par la voie suivante - comme le dit developer.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" /> votre manifeste, mais sur le nouveau SDK, vous obtiendrez toujours une erreur:

Erreur: aucune ressource trouvée correspondant au nom donné (à «valeur» avec la valeur «@ entier / google_play_services_version»).

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 13 des services Google.

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

whizzzkey
la source
4030500 m'a donné une erreur. Cependant, la valeur correcte à utiliser a été fournie dans le logcat.
Maverick
@Maverick quelle est votre version de google_play_services? Vérifiez-le dans le gestionnaire Android SDK
Whizzzkey
3

Pour moi, la seule solution de travail était d' ajouter é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!

pseudo
la source
Cela n'a pas fonctionné pour moi pour quel sdk avez-vous compilé votre projet?
JPM
2

J'ai eu le même problème ici. Comme Magnus l'a dit ci-dessus, cela se produisait à cause d'une mise à jour du SDK vers la version 22.0.5.

Après avoir effectué une mise à jour complète dans mon SDK Android (y compris les services Google Play) et les plugins Android dans Eclipse , j'ai pu utiliser la bibliothèque de services de jeu dans mon application.

Volceri
la source
2

Pour les utilisateurs d' IntelliJ IDEA

Après avoir lutté pendant quelques jours, la seule façon de le faire fonctionner dans IntelliJ IDEA 13 était d'importer la bibliothèque. Voici toutes les étapes:

  1. Mettez à jour le SDK Android pour que le dernier service Play soit installé.
  2. Accédez au android-sdk-root/extras/google/google_play_services/libprojectrépertoire.
  3. Copiez-le google-play-services_libet collez-le à côté de votre projet IntelliJ IDEA (certains recommandent d'utiliser directement ce répertoire, mais je 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 s'il est marqué comme bibliothèque.
  6. Ajoutez un google-play-services_libprojet de bibliothèque en tant que dépendance au projet principal.
  7. Ajoutez également la google-play-servicesbibliothèque en tant que bibliothèque de dépendances.

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

PS. J'ai posé une question, pourquoi IntelliJ IDEA 13 nécessite-t-il que le projet lib et la bibliothèque elle-même (google-play-service) soient ajoutés en tant que dépendance? , pourquoi est-ce un must dans IntelliJ IDEA 13, et pourquoi nous ne pouvons pas importer uniquement la bibliothèque ou le projet.

sandalone
la source
Pourriez-vous énumérer les manipulations exactes que vous faites pour importer le projet google-play-services_lib en tant que dépendance de module (j'utilise Android Studio 0.3.6)
Raphael Royer-Rivard
@ RaphaelRoyer-Rivard Terminé! Notez que ces étapes sont pour IDEA 13, pas pour Android Studio, donc certaines étapes peuvent différer, elles devraient être les mêmes.
sandalone
En fait, c'est l'opération 4 et 5 qui me pose problème. J'ouvre la structure du projet avec F4, puis je vais dans Modules, cliquez sur le + et il y a une fenêtre contextuelle nommée Nouveau module. Dois-je faire référence au dossier google-play-services_lib à partir d'ici (dans le champ racine du contenu)?
Raphael Royer-Rivard
@ RaphaelRoyer-Rivard Dirigez-vous simplement vers le dossier et non la bibliothèque JAR. Et ajoutez l'ensemble du projet en tant que module. C'est ça que vous avez demandé?
sandalone
Eh bien, ce n'est pas aussi simple que de sélectionner un dossier dans mon cas. Je dois choisir le type du module de cette liste ( Java, Maven, Gradle, JavaFX Application, Command Line App, Groovy, Griffon, Gradle: Android Module, Gradle: Android Project, Gradle: Java Library). Et puis en sélectionnant un dossier dans le champ Content root. Est-ce Javale bon type de module à choisir?
Raphael Royer-Rivard
1

J'ai aussi eu le même problème. Au début, cela fonctionnait bien alors, mais quelque temps plus tard, j'ai désinstallé complètement mon application de mon appareil (je l'exécutais sur mon mobile) et l'ai exécutée à nouveau, et cela me montre la même erreur.

J'avais toutes les bibliothèques et les ressources incluses car cela fonctionnait, mais j'obtenais toujours cette erreur, j'ai donc supprimé toutes les références et la bibliothèque de la construction de mon projet, mis à jour le service google vers la révision 10, désinstallé complètement l'application de l'appareil, puis ajouté à nouveau tout les ressources et les bibliothèques et l'ont exécuté et il a recommencé à fonctionner.

Une chose à noter ici est que pendant l'exécution, je vois toujours ce message d'erreur dans mon LogCat , mais sur mon appareil, cela fonctionne bien maintenant.

Pratap Singh
la source
1

J'ai également eu le même problème. J'ai également essayé de rechercher des solutions, mais après n'avoir trouvé aucune solution, j'ai essayé de redémarrer mon mobile (appareil Android) et cela a résolu le problème.

Veuillez l'essayer! Redémarrez votre appareil mobile et Eclipse pour être du bon côté et vérifiez si cela fonctionne.

Umang9
la source
0

Pour moi, la suppression du code suivant l'a corrigé!

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

LE: Je viens de me rappeler qu'il s'agissait d'utiliser Google Maps, donc ma réponse ne répond pas vraiment à la question initiale, mais j'espère que certaines personnes gagneront des heures / jours à se cogner la tête sur leur bureau si elles ont le même problème avec Play Game Services .

Moi aussi, j'ai eu cette erreur incroyablement cryptique. Ce n'était pas quelque chose lié aux services de localisation pour moi, mais avec une mauvaise lecture de 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 devriez é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 ce BaseGameActivityqu'ils suggèrent d'utiliser lorsque vous souhaitez implémenter des services de jeu, donc j'ai été un peu surpris que cela ne fonctionne pas tout de suite. J'ai créé un module dédié pour une copie de google-play-services_lib, j'avais la dernière version de celui-ci (au 4323000moment de l'écriture) et je l'ai défini comme une dépendance de module à mon module principal (en utilisant Android Studio ici). Mais cette petite ligne au-dessus a tout arrangé.

async
la source
0

J'ai eu le même problème. Comme l'a dit Kristopher Johnson, j'ai référencé google-play-services_lib, mais cela n'a pas fonctionné. J'ai ajouté google_play_services_lib.jar (regardez votre dossier SDK / google) sous les propriétés du projet / chemin de construction java / bibliothèques / dépendances android et l'erreur a disparu.

aprados
la source
0

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 pas du leur.

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

J'espère que cela vous donne de l'inspiration ...

Noam
la source
0

Dans mon cas, cela signifiait qu'il y avait une sorte d'erreur dans mon implémentation, et il disait 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 de ressources vraiment nécessaires, vous ne devez pas vous concentrer pour corriger les ressources manquantes, mais plutôt corriger votre implémentation.

L'erreur, BTW, était que je diffusais des annonces en mode débogage sans passer en mode test des annonces.

Lukas Hanacek
la source
0

Je pense qu'il s'agit d'un bogue dans la bibliothèque actuelle des services Google Play, révision 15, car la cause sous-jacente semble être causée par l'échec de la lecture d'un fichier de ressources:

W / ResourceType (25122): la demande de la 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 des 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 la ressource ne parvient pas à se charger. Cela correspond à ce que kreker a réussi à décompiler à partir de la bibliothèque et expliquerait les messages du journal.

Paul Lammertsma
la source
0

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". Le fichier jar inséré dans vos / libs ne contient aucune ressource comme * xml, * png etc. Les journaux d'erreurs signifient cela. Et si vos bibliothèques de support jamais ajoutées comme v4 , v7-appcompat , v7-cardview , v7-recyclerview , v7-pallete ou v7-gridlayout , parfois des journaux qui impliquent que les ressources sont en bref se produisent. Tout cela parce que les ressources des projets ne sont pas importées. Donc, importez les 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 pièce des extras


la source
0

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

ci-dessous est le code:

booléen statique public isGooglePlayServicesInstalled () { try { ApplicationInfo info = NativeActivity . ACTUEL . 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
la source