Services Google Play dans l'émulateur, implémentation du bouton de connexion Google Plus, etc.
Lors de l'intégration d'une Google Plus bouton de connexion dans une application Android, je suis l'observation de certaines différences dans la façon dont le bouton apparaît sur un périphérique réel et dans l'émulateur. Je suis conscient du fait que les Google services Plus Apk ne sont pas installés dans l'émulateur, mais cela peut être contourné en tirant l'Apk à partir d'un appareil et de leur installation dans l'émulateur à l'aide APK.
Ma "mise en œuvre" inclut simplement le bouton de connexion dans une mise en page, en se référant à la touche avec le code XML suivant:
<com.google.android.gms.common.SignInButton
android:id="@+id/sign_in_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
Quand je test mes appli sur l'appareil, le bouton apparaît tout rouge et brillant, selon les lignes directrices mentionnées ici https://developers.google.com/+/mobile/android/connexion . Mais lors de l'exécution de l'émulateur, c'est juste un bouton normal (fond gris avec texte en noir) en disant: "connectez-vous avec Google".
Aucune idée pourquoi les résultats sont-ils différents? J'ai fait en sorte que je suis en cours d'exécution au même niveau API, et les ressources ne semblent avoir tiré correctement aussi sur l'émulateur car il montre le bouton de connexion (mais avec un regard différent).
mise à Jour: Trouvé un indice dans le logcat; le message "bouton de connexion n'est pas trouvé, utilisation de l'espace réservé à la place." assez bien explique pourquoi je vois le gris terne bouton sur l'émulateur. Encore besoin de comprendre pourquoi; peut-être le "copier google plus apk de l'appareil" hack ne fonctionne pas correctement.
source d'informationauteur Marius Kjeldahl
Vous devez vous connecter pour publier un commentaire.
Google Play services de travaux sur la 4.2.2 versions de l'Émulateur Android et est officiellement pris en charge comme décrit dans la Android documentation: le programme d'Installation de Google Play Services.
Mise à jour
Vous pouvez maintenant utiliser la technologie Intel/x86 images (HAXM-compatible) pour l'API 19 et versions plus récentes et pour les BRAS, Google Play Services est disponible sur la plupart des images.
De la configuration de l'image
Pour obtenir la bonne image pour votre virtual device manager:
Pour créer le Périphérique Virtuel:
Note CPU/ABI sera fixé comme BRAS
Maintenant, vous devriez être en mesure d'utiliser les Google Play Services dans l'émulateur. De la note, vous devez définir votre cible de façon appropriée dans votre projet Android de Google Api pour Google Play Services.
J'ai essayé la plupart des combinaisons de l'exécution de l'émulateur, mais avec et sans la Google Api, ce qui signifie que j'ai testé avec les versions x86 et arm modes. Je n'ai trouvé aucun moyen de faire le apk est tirée à partir de mon téléphone Galaxy Nexus pour s'exécuter correctement sur l'émulateur.
Deviner que c'est en quelque sorte liée à l'obtention du Play Store et en cours d'exécution, j'ai décidé d'essayer ça aussi pour voir si j'avais plus de chance. Je n'ai pas; ne pouvait pas obtenir que le travail soit. Le Magasin de Jeu d'icônes s'affichent et peuvent être lancé, mais il se ferme de lui-même.
Ce n'travail est de télécharger et d'installer l'apk en bas de la page ici:
http://umut.tekguc.info/en/content/google-android-map-v2-step-step
Après l'installation de la distribution automatique et de la gms paquets, le bouton de connexion est apparu dans toute sa beauté, en vertu de l'émulateur. Depuis je n'ai pas réellement mis en œuvre la réelle fonctionnalité de login pourtant, je ne peux être sûr qu'il sera effectivement travailler, mais au moins, le bouton est identique dans mon application sur mon appareil et dans l'émulateur.
Vous pouvez également télécharger le Google Play Services logiciels (voir sous "Extras" dans l'Android SDK manager), et installer la bibliothèque google-play-services_lib dans votre projet (Fichier-Importer-Android-Existant Android Code Dans l'espace de travail, puis recherchez par exemple /opt/adt-bundle-linux/sdk/extras/google/google_play_services/libproject et sélectionnez google-play-services_lib).
Une autre information intéressante est que cela ne fonctionne que sur la "pureté" de l'émulateur Android configurations, pas avec le "Google API" configurations. Il semble que le dernier d'avoir certaines parties de ces applications installées dans l'émulateur déjà (visiblement pas et ne travaillent pas), et je n'ai pas réussi à supprimer les versions existantes pour installer le custom fichiers apk qui a travaillé comme décrit ci-dessus. J'ai testé la bad supprimer, adb installer, adb install-r, et même la suppression des répertoires de /de données qui a également échoué. Il a l'air très bien comme Google est d'essayer de rendre la tâche difficile.
Je suis déçu, Google fait ce si difficile; Google peut avoir d'étranges raisons de licence pour garder ce genre de choses de l'émulateur, mais si ils veulent vraiment les gens à utiliser leurs services dans leurs applications Android dont ils ont besoin pour rendre ces services disponibles dans l'émulateur. Forcer les gens à toujours développer sur un périphérique (par ailleurs excellent émulateurs disponibles) ou de faire les gens à sauter à travers des cerceaux (beaucoup de googler, l'installation officieux/des versions piratées de l'apk etc) est tout simplement mal.
Dernière mise à jour avant d'accepter ma réponse, bien que le bon bouton avec le bon style est maintenant dans l'émulateur, je ne suis toujours pas en mesure d'obtenir le "pick compte" boîte de dialogue apparaît dans l'émulateur. Quand/si je le fais, je vais partager la solution appropriée ici.
Vérifier la ldpi, mdpi, hdpi, etc... des dossiers pour un autre bouton graphique. Votre émulateur est presque certainement une autre DPI de votre appareil.
j'ai remarqué qu'à partir de l'API 21 il y a ARM et x86 images avec Google Api de mise en œuvre
peut-être que si vous n'avez pas de problème à l'aide de l'émulation android 5 ça fonctionne sans extraire l'Apk