web-dev-qa-db-fra.com

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

Lors de la mise à niveau de mon projet vers la dernière version des services Google Play ( v4.0, publiée sur Halloween 2013 ), vous devez désormais ajouter une nouvelle balise dans le fichier AndroidManifest.xml.

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

Malheureusement, lorsque j'essaie de le faire, j'obtiens 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 ensuite naviguer dans le fichier en google-play-services_lib/res/values/version.xml et voir le nombre entier brut pour ce symbole:

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

Et puis réinsérez-le dans mon AndroidManifest.xml:

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

Cela fonctionne parfaitement et je peux ensuite compiler et exécuter le projet et l'application parfaitement. Mais c'est définitivement un correctif indésirable avec des problèmes d'évolutivité évidents.

Des idées?

186
Charles Madere

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

Correction de ce problème! J'utilise IntelliJ et il s'avère que je viens d'avoir mal configuré la façon dont j'ai inclus le module google-play-services_lib en tant que dépendance.

Comme je l'ai entièrement corrigé via l'interface graphique et pas du tout en modifiant des fichiers, voici quelques captures d'écran:

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

Step 2 - Removed google-play-services library Ensuite, j'ai supprimé la bibliothèque google-play-services de ma liste de dépendances en la sélectionnant puis en cliquant sur le bouton moins en bas. Notez l'erreur en bas de la boîte de dialogue, car mon projet nécessite absolument cette bibliothèque. Mais ne vous inquiétez pas, nous l'ajouterons bientôt!

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

Step 4 - Click the lightbulb to add the google-play-services library as a dependency J'ai ensuite cliqué sur l'ampoule située au bas de la boîte de dialogue dans la zone du message d'erreur pour afficher cette petite petite fenêtre contextuelle qui donne deux choix (Ajouter aux dépendances ... ou Supprimer la bibliothèque). Cliquez sur l'option Ajouter aux dépendances ...!

Step 5 - Add the library to the google-play-services_lib module Une nouvelle petite boîte de dialogue aurait dû apparaître. Cela m'a donné deux choix, un pour mon projet principal (son nom est estompé) et un autre pour le projet google-play-services_lib. Les vôtres en auront peut-être davantage 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 aide quelqu'un d'autre là-bas!

Plus d'infos

Je crois que la raison pour laquelle ce problème se posait au départ est parce que j’ai pensé j’avais correctement inclus l’intégralité du projet google-play-services_lib dans mon projet global ... mais je ne l’avais pas fait et je l’avais plutôt inclus son fichier jar (google-play-services_lib/libs/google-play-services.jar). Ce fichier JAR contient uniquement du code et non des valeurs de ressources Android. La valeur @integer/google_play_services_version n'a donc jamais été vraiment dans mon projet. Mais le code a pu être utilisé dans mon projet, ce qui a donné l'impression que tout allait bien.

Et en guise de remarque, résoudre ce problème semble également avoir corrigé le crash de GooglePlayServicesUtil.getErrorDialog(...).show() que j’avais. Mais cela aurait aussi pu être corrigé par la mise à jour, pas vraiment sûr à 100%.

78
Charles Madere

Pour tous ceux qui utilisent Eclipse, voici comment procéder.

Eclipse -> importer -> code Android existant -> parcourir -> accéder à google-play-services_lib FOLDER (sdk Android/extras/google/google_play_services/libproject).

Ensuite, sur votre projet

cliquez sur le bouton de contrôle -> propriétés -> Android -> bibliothèques, ajoutez -> sélectionnez le projet que vous venez d'importer -> ok

257
PSchuette

J'ai rencontré le même problème et apparemment, Eclipse a laissé le fichier version.xml dans/res/values ​​du projet google-play-services_lib original lors de la copie. J'ai extrait le fichier du projet d'origine et l'ai collé dans ma copie du projet. Le problème est résolu.

31
Atul Goyal

Sur Eclipse, après avoir importé la bibliothèque Google Play dans l'espace de travail du projet, je viens de copier le fichier version.xml depuis

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

à 

MyProjectName/res/values/version.xml
24
Darragh O'Keeffe

Pour toute personne utilisant gradle: n'incluez pas la source du projet, mais téléchargez-la à l'aide de SDK Manager et ajoutez cette ligne aux dépendances:

compile 'com.google.Android.gms:play-services:4.0.30'
20
Sofi Software LLC
  1. Installez "Services Google Play" et "Référentiel Google" à partir du Gestionnaire de SDK Android.
  2. Ajoutez la ligne compile 'com.google.Android.gms:play-services:4.1.32@aar' à votre build.gradle.
  3. En conséquence, la ressource @integer/google_play_services_version sera disponible. 
11
Andrey Grebnev

D'emblée, votre projet est apparenté à une ancienne version du projet de bibliothèque Play Services. L'approche recommandée par Google consiste à rechercher le projet de bibliothèque dans le SDK et à en créer une copie locale. Cela signifie toutefois que chaque fois que vous mettez à jour le projet de bibliothèque Play Services via le Gestionnaire de SDK, vous devez également remplacer votre copie par une nouvelle copie.

10
CommonsWare

après la mise à jour de la dernière version, j'ai rencontré ce problème avec tous mes projets, mais le problème a été résolu en ajoutant simplement la référence de la bibliothèque:

si vous n’avez pas la bibliothèque dans votre espace de travail dans Eclipse, vous pouvez l’ajouter avec: File -> Import -> Existing Android Code Into Workspace -> parcourez et naviguez jusqu’à google-play-services_lib project lib, (Android-sdk/extras/google/google_play_services/libproject).

enter image description here

puis supprimez les dossiers /bin et /gen de mon projet (quelque chose de similaire à l'option de nettoyage) et construisez à nouveau mon projet.

7
Elenasys

J'ai aussi rencontré cela en essayant d'utiliser google_play_services_froyo. 

J'ai déposé ce bogue: https://code.google.com/p/google-plus-platform/issues/detail?id=734

7
AG1

Résolu pour Eclipse

Suivez les étapes suivantes: _

  1. Importez le dossier google-play-services_lib en tant que projet, à l'aide de Import-> Code Android existant dans l'espace de travail
  2. Dans les propriétés du projet, sélectionnez la section Android, en bas. Dans la section Bibliothèque, cliquez sur Ajouter et sélectionnez google-play-services_lib et Appliquer Suivez le lien http://i.stack.imgur.com/ opSeJ.png voir la capture d'écran 
6
Riccardo Pittiglio

Le site de développement Android de Google contient des instructions sur la procédure "Ajouter des services Google Play à votre projet", ainsi que sur la mise à niveau de la version des services Play. Il existe même un menu déroulant pour afficher les instructions relatives à Eclipse, Android Studio ou "Quelque chose d'autre". Ce serait le meilleur endroit pour voir les instructions au cas où elles changeraient. La page est ici:

http://developer.Android.com/google/play-services/setup.html

Mais comme la plupart des réponses ici concernent Eclipse, voici un bref résumé de la mise à niveau de Play Services avec Android Studio.

  1. Ouvrez le fichier build.gradle dans le répertoire du module de votre application ..__ Remarque: les projets Android Studio contiennent un fichier build.gradle de niveau supérieur et un fichier build.gradle pour chaque module. Veillez à éditer le fichier pour votre module d'application. 
  2. Mettez à jour la règle de construction sous "dépendances" pour faire référence à la version de play-services que vous avez téléchargée sur votre ordinateur de développement. 

Vous pouvez trouver le numéro de version de la version de play-services téléchargée sur votre ordinateur de développement en consultant le dossier\sdk\extras\google\m2repository\com\google\Android\gms\play-services, comme expliqué ici : Comment faire correspondre une révision des services Google Play avec une version d'installation?

5
Eric Barr

Pour Eclipse, je viens d'ajouter une référence de projet à google-play-services_lib dans: 

Propriétés-AndroidDans le volet Bibliothèque (volet inférieur), assurez-vous que google-play-services_lib est répertorié. Sinon, cliquez sur le bouton Ajouter .. et sélectionnez google-play-services_lib.

4
hNdroid

J'ai eu le même problème, le fichier version.xml n'était pas dans google-play-services_lib . Lancez-vous simplement dans le gestionnaire de sdk et acceptez la mise à jour, en particulier les éléments liés aux "extras".

3
user2167877

Corrigé en ajoutant les services Google Play à mon module: fichier de construction de l'application. La documentation indique également de mettre à jour la version lorsque vous mettez à jour GMS.

dependencies {

compile 'com.google.Android.gms:play-services:9.6.1'

} 
2
Hugh Brady

Lors de l'importation de google-play-services_lib, vérifiez le code de version défini dans les fichiers AndroidManifest.xml et version.xml . J'ai trouvé la différence de code de version et remplacez-le par 4242000 . Après avoir effectué les modifications, il n’ya plus d’erreur de compilation dans @ integer/google_play_services_version .enter image description here

2
Shanki Bansal

Dans mon cas, je devais copier le dossier google-play-services_lib dans le même lecteur des codes sources de mes applications.

  • F:\Products\Android\APP * .Java <- Mes applications sont ici, donc je les ai copiées dans le dossier ci-dessous
  • F:\Produits\Android\libs\google-play-services_lib
1
fedmich

Vous trouverez ci-dessous les principales actions permettant d'éviter de nombreuses erreurs lors de l'utilisation du service Google Play. Lib:

  1. Veillez à copier le projet lib dans l'espace de travail des projets Eclipse. 
  2. Le kit de développement logiciel cible pour Google Play Service Lib doit être "Google
  3. API "3- Les métadonnées doivent être ajoutées au fichier manifeste.
  4. Votre cible de projet SDK devrait être 17 à moins que vous ayez complètement Mis à jour à 19, car dans certains cas, 19 ne fonctionne pas bien.
1
Ayman Al-Absi

J'ai eu le même problème avec un projet utilisant Maven et IntelliJ. Les services Google Play sont ajoutés en tant que dépendance maven. La construction maven a bien fonctionné en ligne de commande, mais IntelliJ s’est plaint de ce symbole manquant @integer/google_play_services_version

Dans mon cas, je ai forcé une mise à jour des fichiers POM maven et cela a résolu le problème.

1
Pierre Henry

Lorsque vous n'utilisez pas d'IDE, mais utilisez des versions en ligne de commande (en utilisant ant et ndk-build), voici comment le résoudre:

Installez toutes les parties requises avec la commande 'Android' . Créez ensuite une copie de google-play-service_lib/à la racine de votre projet . Modifiez project.properties pour inclure cette ligne:

Android.library.reference.1=./google-play-services_lib
1
Bram

Android Studio 3.3.2 sous Windows 10

Fichier -> Invalider les caches/redémarrer et choisir le bouton invalidate and Restart dans la boîte de dialogue qui apparaît.

0
isabsent

Google suggère de ne pas créer de projet directement à partir du répertoire du SDK. Il est préférable de copier le projet lib à l'emplacement où se trouve votre application, puis de l'importer à partir de là. Sinon, lors de la prochaine importation du projet pour une autre application, il sera déjà utilisé.

https://developer.Android.com/google/play-services/setup.html

Remarque: vous devez référencer une copie de la bibliothèque que vous avez copiée dans votre espace de travail de développement. Vous ne devez pas référencer la bibliothèque directement à partir du répertoire du SDK Android.

0
Shygar

Quiconque cherche en 2017, la version 10.0.1 des services de jeu nécessite d'importer play-services-basement (utiliser pour être dans play-services-base).

0
goobliata

J'ai eu le même problème. Le problème était que le "google-play-services.jar" n'était pas importé correctement dans mon projet même s'il faisait partie du projet google_play_service_lib. Si vous utilisez Eclipse, vérifiez si vous pouvez voir le fichier jar des services de lecture dans la section Bibliothèques privées Android et s'il est exporté par la bibliothèque.

J'utilise les outils de la plate-forme Android SDK version 17 (et non 19) et les outils du SDK Android version 22.0.1

0
Punit Raizada

Je viens de mettre à jour les services Google Play dans le dossier Extras du gestionnaire de SDK Android.

0
KarenAnne

Le problème pour moi était que le projet de bibliothèque et le projet utilisant des services de lecture étaient dans des répertoires différents. Alors juste:

  • 1.Ajoutez les fichiers au même espace de travail, puis supprimez la bibliothèque.
  • 2. Redémarrez Eclipse
  • 3.Ajouter le projet de bibliothèque à nouveau
  • 4. Effacer
0
makkasi