Ajouter la version des services Google Play au manifeste de votre application?

88

Je suis ce tutoriel: https://developers.google.com/maps/documentation/android/start#overview sur la façon d'ajouter Google Maps à une application dans le SDK Android.

Le seul problème que je semble avoir est pendant ce moment (j'ai fait tout le reste sans erreur):

Edit your application's AndroidManifest.xml file, and add the following declaration within the

 <application> element. This embeds the version of Google Play services that the app was compiled with.

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

The error is:
   No resources found that match the given name (at 'value' with value '@integer/    
   google_play_services_version').

J'ai essayé de suivre la solution de cette personne au même problème: mise à jour de la bibliothèque de services Google Play et symbole manquant @ integer / google_play_services_version

mais j'obtiens toujours la même erreur. Une aide s'il vous plaît?

Adz
la source
Si Eclipse vous pose problème, essayez de faire ceci: stackoverflow.com/a/19990244/166921
Kamil Szot

Réponses:

100

Il est probable que votre bibliothèque n'est pas correctement liée au projet ou que vous avez une version plus ancienne de la bibliothèque google-play-services, donc un conflit apparaît et Eclipse est devenu stupide.: S

Non, vous n'avez rien à ajouter dans integers.xml. Lorsque vous liez correctement la bibliothèque de services Google-play à votre projet, la référence android:value="@integer/google_play_services_version"sera trouvée et vous êtes prêt à partir. Lorsque vous ajoutez une bibliothèque à votre projet, faites simplement un autre environnement Eclipse propre et amusant pour balayer correctement les choses.

Si vous codez en dur quelque part ce numéro lors de la prochaine version de jeu, vous devrez le mettre à jour. Et si vous oubliez cela, vous passerez à nouveau du temps à chercher des bogues ..: S

J'espère que cela a aidé. ;)

Ewoks
la source
1
oui, sur Android Studio, j'ai ajouté le service google play en tant que module (pas en tant que bibliothèque), mais j'ai oublié d'ajouter ce module à mon module de projet où se trouve le fichier manifeste. Cela a résolu le problème :)
Ragaisis
18
Merci, cela a résolu mon problème. Pour un guide étape par étape à l'épreuve des idiots pour référencer un projet de bibliothèque dans Eclipse / ADT, veuillez consulter la documentation Google Tools . Je suis apparemment un idiot, car j'essayais d'ajouter la bibliothèque sous "Java Build Path: Libraries" - pas de travail.
Jeffro
Désolé pour la réponse tardive, mais oui, c'était le problème, la bibliothèque n'était pas correctement liée à mon projet!
Adz le
1
Comment faire ça pour Ant?
Dzmitry Lazerka
2
Si cela peut aider, j'ai dû faire quelques étapes supplémentaires dans Android Studio. Je suis allé à: Structure du projet -> App -> Dépendances -> cliquez sur + pour ajouter une option pour la bibliothèque -> play-services (xxx). J'ai eu une erreur lorsque j'ai reconstruit et que la bibliothèque ajoutée était play-services ... 0.0. Il me manquait les référentiels Google Play du gestionnaire de SDK sous les extras. Lorsque je suis revenu et que j'ai répété ces étapes, la bibliothèque avait maintenant un numéro de version réel et a été reconstruite avec succès.
natur3
36

J'ai la solution.

  • Étape 1: Faites un clic droit sur votre projet dans l'explorateur de packages (côté gauche dans eclipse)
  • Étape 2: accédez à Android.
  • Étape 3: Dans la section Bibliothèque, ajoutez une bibliothèque ... (google-play-services_lib)
    voir ci-dessous les buttes

    • Copiez le projet de bibliothèque sur

    <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/

    • à l'emplacement où vous gérez vos projets d'application Android. Si vous utilisez Eclipse, importez le projet de bibliothèque dans votre espace de travail. Cliquez sur Fichier> Importer, sélectionnez Android> Code Android existant dans l'espace de travail et accédez à la copie du projet de bibliothèque pour l'importer.
    • Cliquez ici pour en savoir plus.
  • Étape 4: Cliquez sur Appliquer
  • Étape 5: Cliquez sur OK
  • Étape 6: actualisez votre application à partir de l'explorateur de packages.
  • Étape 7: vous verrez que l'erreur a disparu.
Vrajesh
la source
30

D' ici

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.

J'ai rencontré cette erreur car j'ai référencé la copie originale du répertoire SDK. Assurez-vous de copier d'abord la bibliothèque dans l'espace de travail Android et de ne la référencer que. Dans eclipse, vous pouvez le faire en cochant "Copier les projets dans l'espace de travail" lors de l'importation du projet.


la source
3
aiaiai, des heures perdues à cause de ne pas cocher cette case ... content d'avoir trouvé cette réponse! Devrait être plus clair dans la documentation Google.
Marius Hilarious
Et c'était mon problème, tout était référencé comme il se doit, à l'exception du dossier source de google lib qui n'a pas été copié dans mon espace de travail
JustADev
Ce correctif a fonctionné pour moi aussi. Mais je me demande quelle est la différence techniquement?
sivag1
Google devrait mettre à jour la capture d'écran / les instructions ici: développeurs.google.com
getting-started
22

Dans Android Studio, vous pouvez résoudre ce problème en ajoutant simplement ceci à votre fichier Gradle:

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

ÉDITER

Maintenant, en raison des mises à jour et de la nouvelle API Gradle, la ligne que vous devez utiliser est:

implementation 'com.google.android.gms:play-services:12.0.0'

Un autre conseil important : évitez d'utiliser la version groupée des services Google Play, mais envisagez de ne déclarer que les dépendances dont votre application a besoin pour réduire sa taille et réduire les appels inutiles à la limite de 65 000 méthodes. Quelque chose comme (par exemple pour Maps), ce serait mieux que l'utilisation générale des services de jeu ci-dessus:

implementation 'com.google.android.gms:play-services-maps:12.0.0'
Joaquin Iurchuk
la source
Merci - cela a aidé. J'essaie de faire ce tutoriel et j'ai rencontré cette erreur et votre solution m'a aidé: github.com/googledrive/android-demos
Simon
1
J'avais juste besoin de nettoyer le projet, après la synchronisation de gradle, et l'erreur entière manquante a disparu. Cela fonctionne bien aussi:compile 'com.google.android.gms:play-services-appindexing:7.8.0'
Someone Somewhere
2
Je sais que c'est un ancien Q / R, mais les gens continuent de trébucher dessus, il était donc logique de le mettre à jour avec les nouvelles API AS3 et Gradle et d'insister sur le besoin d'utiliser une bibliothèque spécifique au lieu d'un ensemble complet. J'espère que l'auteur original ne me dérange pas
Ewoks
7

Ajoutez simplement la référence de la bibliothèque, allez à Propertes-> Android, puis ajoutez la bibliothèque.

entrez la description de l'image ici

puis ajoutez en vous AndroidManifest.xml

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

J'ai eu le même problème dans Android Studio 1.2.1.1. C'était juste lire les autres réponses, cependant, je n'ai pas été en mesure de trouver où ajouter les dépendances. Enfin, je l'ai trouvé sous Fichier-> Structure du projet-> Dépendances Ce menu vous donnera l'option d'ajouter la dépendance à la bibliothèque des services Google Play.

7heViking
la source
+1 pour l'aide sur la navigation obscure dans AS 1.2. Je vous remercie! Cela n'a pas aidé, dans mon cas, que je travaillais sur un projet transmis par un autre développeur et que je n'avais jamais installé la bonne version de la bibliothèque de services de lecture à l'aide du gestionnaire de SDK: $. Une fois que j'ai téléchargé / installé la bibliothèque, je suis retourné et j'ai supprimé / ajouté à nouveau et l'erreur de compilation a disparu.
Anne Gunn
2

Dans mon cas, j'ai dû installer le référentiel google à partir du gestionnaire de SDK.

MarcSB
la source
1

J'obtenais la même erreur; J'avais déjà installé google-play-services_lib pour Google Maps (et cela fonctionnait bien), mais quand j'ai essayé plus tard d'ajouter l'entrée de méta-données à mon manifeste, j'obtenais l'erreur. J'ai essayé toutes les suggestions ci-dessus mais rien ne les lierait correctement; J'ai finalement supprimé le lien de mon projet (project-properties-Android, remove google-play-services_lib library), puis supprimé de l'espace de travail Eclipse, supprimé les fichiers sur le disque et finalement utilisé le gestionnaire de SDK pour réinstaller à partir de zéro.

Cela semblait finalement faire l'affaire; maintenant, Eclipse a décidé de me permettre de laisser la saisie de méta-données sans erreur.

dgiles
la source
J'ai eu la même erreur, la copie de la bibliothèque google-play-services dans mon espace de travail était ancienne (donc ne contenant pas la ressource entière), et le remplacement de la bibliothèque par une version mise à jour a fait l'affaire.
Bianca Daniciuc
0

Vous pouvez modifier l'espace de travail et résoudre ce problème et ensuite importer le projet corrigé dans votre espace de travail principal. Aussi les 4 étapes devraient être en ordre, j'espère que cela aidera quelqu'un à l'avenir.

sivi
la source
0

Cette erreur peut également se produire lorsque vous avez téléchargé une nouvelle version des services Google Play et que vous n'avez pas installé le dernier SDK. C'est ce qui m'est arrivé. Ainsi, comme les autres l'ont mentionné, si vous essayez d'importer les services Google Play, puis ouvrez la console, vous verrez une erreur de compilation. Essayez d'installer tous les SDK Android récents et réessayez, si tel est le cas.

UtsavShah
la source
0

J'ai suivi les étapes suivantes pour m'en remettre:

1) Importez les services google play en tant que projet dans votre sdk android. Dans mon système, il se trouve dans C: \ adt-bundle-windows-x86_64-20140702 \ sdk \ extras \ google \ google_play_services \ libproject \ google-play-services_lib

2) Votre application Android-> Propriétés -> Android

Dans la fenêtre

2.1) Cliquez sur les API Google dans la cible de construction du projet 2.2) Ajoutez des services google-play dans le cadre inférieur et cliquez sur OK

J'espère que cela donne des instructions claires sur ce qu'il faut faire !!

Merci.

pravs
la source
0

Dans mon cas, j'avais besoin de copier le FOLDER google-play-services_lib dans le même DRIVE des codes sources de mes applications

  • F: \ Products \ Android \ APP * .java <- Mes applications sont ici, j'ai donc copié dans le dossier ci-dessous
  • F: \ Products \ Android \ libs \ google-play-services_lib
fedmich
la source
0

Le simple fait de supprimer la bibliothèque de services Google Play du projet et de l'ajouter à nouveau à partir du sdk->extras->googledossier a parfaitement résolu mon problème.

Neal Ahluvalia
la source
0

Pour mon cas, je viens de redémarrer mon Eclipse et ça marche.

Je travaille depuis 2 semaines sans l'arrêter, je pense que ça se détraque.

Merci pour la suggestion via Ewoks!

Eddy Goh
la source
0

Remplacez le code de version par le code approprié de la version de la bibliothèque résoudra votre problème, comme ceci:

 <integer name="google_play_services_version"> <versioncode> </integer>
1'hafs
la source
-3

Peut directement utilisé comme

android:value="6587000"

au lieu de

android:value="@integer/google_play_services_version"

À votre santé.

Ali Akram
la source
Voir la réponse acceptée ci-dessus ( stackoverflow.com/a/20068489/165164 ) pour savoir pourquoi c'est une mauvaise idée.
Anne Gunn
-37

Vous devrez ajouter un fichier "integers.xml" au dossier "res / values" de votre projet. Le contenu du fichier doit être ..

<resources>
    <integer name="google_play_services_version">4030500</integer>
</resources>
Murray
la source
6
ne faites jamais cela, ce n'est pas de manière dynamique.
panchicore
2
C'est exactement la mauvaise chose à faire. Voir la réponse d'Ewoks, à stackoverflow.com/a/20068489/1450294
Michael Scheper