186 votes

Mise à jour de la bibliothèque Google Play Services et symbole manquant @integer/google_play_services_version

Lors de la mise à niveau de mon projet vers la dernière version de Google Play Services ( v4.0, publié à l'Halloween 2013 ), vous êtes maintenant censé ajouter une nouvelle balise dans la balise AndroidManifest.xml fichier.

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

Malheureusement, lorsque j'essaie de faire cela, j'obtiens alors cette erreur de compilation :

android-apt-compiler: /blahblah/AndroidManifest.xml:409: error: Error: No resource found that matches the given name (at 'value' with value '@integer/google_play_services_version').

Je peux alors naviguer vers le fichier à google-play-services_lib/res/values/version.xml et afficher le nombre entier brut pour ce symbole :

<integer name="google_play_services_version">4030500</integer>

Et puis je le réinsère dans mon AndroidManifest.xml :

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

Cela fonctionne parfaitement et je peux compiler et exécuter le projet et l'application sans problème. Mais c'est définitivement une solution indésirable avec des problèmes évidents de mise à jour.

Des idées ?

0 votes

J'ai exactement le même problème en ce moment - mais je n'ai pas pu trouver l'entier.

256voto

PSchuette Points 2109

Pour tous ceux qui utilisent Eclipse, c'est ainsi que vous devez procéder.

Eclipse -> importation -> code Android existant -> parcourir -> naviguer vers le DOSSIER google-play-services_lib (Android-sdk/extras/google/google_play_services/libproject).

Ensuite, sur votre projet

control click -> propriétés -> Android -> bibliothèques, ajouter -> sélectionner le projet que vous venez d'importer -> ok

0 votes

J'ai essayé ceci (en suivant les instructions de l'autre question pour localiser le dossier), mais Eclipse dit qu'il ne peut pas écrire le fichier .project dans le fichier indiqué google-play-services_lib répertoire. De toute évidence, la raison immédiate est qu'Eclipse ne peut pas écrire dans le répertoire Program Files, où se trouve le SDK, mais la question plus concrète serait de savoir pourquoi la modification de l'adresse IP de l'utilisateur est si importante. .project (qui appartient apparemment au SDK et devrait donc être "correct") est nécessaire en premier lieu.

0 votes

Je n'ai jamais vu ce problème auparavant et je ne sais donc pas exactement comment le résoudre. Cela dit, à moins d'avoir déjà été explicitement modifié, je ne pense pas que l'erreur existe dans le dossier. Il est possible qu'il soit simplement périmé et qu'il faille le retélécharger (ce qui est peu probable, mais on ne sait jamais).

0 votes

Avez-vous rencontré cette erreur lorsque vous avez essayé d'ajouter la bibliothèque ou lorsque vous avez essayé d'importer le projet ?

78voto

ScootrNova Points 1259

Veuillez noter que ce correctif ne peut s'appliquer qu'aux utilisateurs d'IntelliJ ! (Plus d'informations en bas de cet article qui devraient s'appliquer à tout le monde).

Ce problème est résolu ! J'utilise IntelliJ et il s'avère que j'avais juste mal configuré la façon dont j'incluais les google-play-services_lib en tant que dépendance.

Comme j'ai résolu ce problème entièrement par l'interface graphique et pas du tout en éditant des fichiers, voici quelques captures d'écran :

Step 1 - Initial Project Structure Ainsi, la structure de mon projet a commencé à ressembler à ceci...

Step 2 - Removed google-play-services library Puis j'ai retiré le google-play-services de ma liste de dépendances en la sélectionnant puis en cliquant sur le bouton moins en bas. Remarquez l'erreur au bas de la boîte de dialogue, car mon projet a absolument besoin de cette bibliothèque. Mais ne vous inquiétez pas, nous la réintroduirons bientôt !

Step 3 - Added google-play-services as a module dependency Ensuite, j'ai ajouté google-play-services_lib comme une dépendance de module au lieu d'une dépendance de bibliothèque. Ensuite, j'ai appuyé plusieurs fois sur la flèche vers le haut en bas pour déplacer cette dépendance vers le haut de la liste. Mais remarquez l'erreur en bas de page (nous n'avons pas encore fini !)

Step 4 - Click the lightbulb to add the google-play-services library as a dependency J'ai ensuite cliqué sur l'ampoule en bas de la boîte de dialogue dans la zone du message d'erreur pour faire apparaître cette petite fenêtre contextuelle qui propose deux choix ( Ajouter aux dépendances... o Retirer la bibliothèque ). Cliquez sur le bouton Ajouter aux dépendances... option !

Step 5 - Add the library to the google-play-services_lib module Une nouvelle petite fenêtre de dialogue devrait s'ouvrir. Elle m'a donné deux choix, un pour mon projet principal (son nom est estompé), et un autre pour le projet de l google-play-services_lib projet. Le vôtre peut en avoir un peu plus en fonction de votre projet (comme vous pouvez voir actionbarsherlock des choses comme ça). Sélectionnez google-play-services_lib et cliquez sur OK !

Et enfin, vous avez terminé ! J'espère que cela aidera quelqu'un d'autre !

Plus d'informations

Je pense que la raison pour laquelle ce problème est apparu est que j'ai pensée que j'avais correctement inclus la totalité google-play-services_lib dans mon projet global... mais en fait je ne l'avais pas fait, et j'avais seulement inclus correctement son fichier jar ( google-play-services_lib/libs/google-play-services.jar ). Ce fichier jar n'inclut que le code, et non les valeurs des ressources Android, et donc en tant que tel le @integer/google_play_services_version n'a jamais été realmente dans mon projet. Mais le code a pu être utilisé dans mon projet, ce qui m'a donné l'impression que tout allait bien.

Et à titre d'information, la résolution de ce problème semble également avoir résolu la GooglePlayServicesUtil.getErrorDialog(...).show() que j'avais l'habitude d'avoir. Mais cela pourrait aussi avoir été corrigé par la mise à jour, je ne suis pas vraiment sûr à 100%.

2 votes

Cela ne fonctionne pas pour moi. Je n'ai pas "l'ampoule en bas de la boîte de dialogue dans la zone du message d'erreur pour faire apparaître cette petite popup qui donne deux choix".

2 votes

Dans votre cas, j'essaierais peut-être de supprimer complètement Google Play Services de votre projet, puis de le réimporter. Comme ce problème d'entier manquant ne se produit que si Google Play Services n'est pas correctement importé, il peut être judicieux de repartir de zéro.

1 votes

@Vadorequest vous pouvez aussi sélectionner le module google-play-services-lib et ajouter le fichier google-play-services.jar comme dépendance du module (!au module google-play-services-lib !)

31voto

Atul Goyal Points 1433

J'ai rencontré le même problème, et apparemment, Eclipse a en quelque sorte laissé l'option version.xml dans /res/values à partir de l'original. google-play-services_lib projet tout en faisant une copie. J'ai retiré le fichier du projet original et l'ai collé dans ma copie du projet et le problème est réglé.

0 votes

C'est la solution qui m'a aussi réparé, c'est un oubli incroyable de la part de Google si vous voulez mon avis.

0 votes

Merci mon pote, cela a réglé mon problème.

1 votes

Cela a réglé mon problème. Pourquoi l'importation d'Eclipse a ignoré ce fichier ? Un indice ?

24voto

Darragh O'Keeffe Points 121

Sur Eclipse, après avoir importé la bibliothèque google play dans l'espace de travail du projet, j'ai simplement copié le fichier version.xml fichier de

google-play-services_lib/res/values/version.xml

à

MyProjectName/res/values/version.xml

3 votes

Cela fonctionne, mais le problème est que cela rend la mise à niveau vers une version plus récente de la bibliothèque Google Play Services un peu plus ennuyeuse. Vous devrez probablement remplacer le fichier version.xml avec chaque mise à jour.

20voto

Sofi Software LLC Points 1835

Pour tous ceux qui utilisent gradle : n'incluez pas la source du projet, mais téléchargez-la à l'aide du SDK Manager et ajoutez cette ligne aux dépendances :

compile 'com.google.android.gms:play-services:4.0.30'

0 votes

Seulement qu'il ne le trouve pas:Error:Un problème est survenu lors de la configuration du projet ':app'. > Impossible de résoudre toutes les dépendances pour la configuration ':app:_debugCompile'. > Impossible de trouver une version correspondant à com.google.Android.gms:play-services:6.1.+. Recherché dans les emplacements suivants : jcenter.bintray.com/com/google/Android/gms/play-services/ jcenter.bintray.com/com/google/Android/gms/play-services

0 votes

File:/home/teo/Documents/programmi/Android-studio-new/sdk/extras/Android/m2repository/com/google/android/gms/play-services/maven-metadata.xml file:/home/teo/Documents/programmi/Android-studio-new/sdk/extras/Android/m2repository/com/google/android/gms/play-services/ Requis par : xxxxxxx:app:non spécifié

0 votes

Le chemin où il cherche la bibliothèque ne semble pas correspondre à l'emplacement où le gestionnaire de sdk l'a effectivement téléchargée, mais même après avoir créé un lien symbolique, le problème n'est pas résolu. Je suppose que je n'arrive pas à comprendre quel fichier ou dossier exactement il doit trouver. Une idée ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X