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?
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:
Ainsi, ma structure de projet a commencé à ressembler à ceci ...
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!
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!)
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 ...!
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!
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%.
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
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.
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
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'
compile 'com.google.Android.gms:play-services:4.1.32@aar'
à votre build.gradle
.@integer/google_play_services_version
sera disponible. 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.
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
).
/bin
et /gen
de mon projet (quelque chose de similaire à l'option de nettoyage) et construisez à nouveau mon projet.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
Résolu pour Eclipse
Suivez les étapes suivantes: _
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.
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?
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.
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".
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'
}
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 .
Dans mon cas, je devais copier le dossier google-play-services_lib dans le même lecteur des codes sources de mes applications.
Vous trouverez ci-dessous les principales actions permettant d'éviter de nombreuses erreurs lors de l'utilisation du service Google Play. Lib:
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.
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
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.
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.
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
).
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
Je viens de mettre à jour les services Google Play dans le dossier Extras du gestionnaire de SDK Android.
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: