web-dev-qa-db-fra.com

Comment télécharger les anciens services Google Play?

Je vais utiliser Android google maps v2 avec Android emulator/Android studio 0.4.0. L'une des exigences est de mettre en projet google-play-services_lib avec une version inférieure/égale au niveau emulator. Mon émulateur fonctionne avec api lv 17. La question est de savoir comment télécharger une ancienne version de google-play-services_lib que ceux téléchargés par Android sdk manager?

43
Jacob

Je me rends compte que c'est une vieille question, mais j'ai eu le même problème aujourd'hui (pour les vrais appareils pas pour l'émulateur) et j'ai trouvé une solution.

Je sais que vous pouvez ajouter du code pour inviter l'utilisateur à passer à la dernière version (voir le commentaire de @ nathan-walters) mais, pour des raisons compliquées, dans mon cas, je dois travailler avec la version que l'utilisateur a déjà installée sur son périphérique (le cas échéant) et préfèrent donc compiler/construire avec une ancienne version de la bibliothèque cliente (google-play-services_lib)

Donc, en recherchant plus loin, j'ai déballé le xml que Android SDK Manager utilise pour rechercher et installer les packages `` extras '', y compris la dernière version de Google Play Services.
Si vous êtes intéressé, commencez ici: https://dl-ssl.google.com/Android/repository/addon.xml

Pour la version actuelle (à partir du 10 novembre 2014) qui vous donne la bibliothèque de google-play-services_lib à:

https://dl-ssl.google.com/Android/repository/google_play_services_6171000_r21.Zip

Les anciennes versions se trouvent au même emplacement sur les serveurs Google (bien qu'elles puissent disparaître à tout moment), donc si vous êtes prêt à déplacer la bibliothèque installée actuelle de côté et à décompresser manuellement un ancien Zip, vous pouvez installer une ancienne version. J'ai trouvé ce qui suit:

La même technique vous permettrait de tester par rapport aux anciennes versions de Google Maps (Google Play Services) non évolutives câblées dans les anciennes versions de l'émulateur. Je n'ai pas testé toutes ces versions par rapport à l'émulateur, mais j'ai réussi à tester Google Maps dans l'émulateur pour un AVD basé sur les API Google (API 19).

Google essaie occasionnellement de mettre à jour l'émulateur. Voici un fil de suivi des problèmes discutant des problèmes d'incompatibilité de version entre la bibliothèque cliente et l'émulateur et les différentes tentatives de Google pour les résoudre: https://code.google.com/p/Android/issues/detail?id=5788

[MISE À JOUR:]

@btrue voir la réponse ci-dessous a maintenant une réponse beaucoup meilleure que ma réponse

aller à:

<your path to Android sdk>/extras/google/m2repository/com/google/Android/gms/play-services/

où vous trouverez des répertoires contenant les anciennes versions au format AAR - il suffit de renommer .Zip pour l'extraction.

90
Mike

La réponse acceptée est trop difficile. Google distribue en fait les anciennes versions dans le gestionnaire de SDK.
Sous "Extras", il y a "Google Repository".
Dans le référentiel se trouvent des bibliothèques GPS remontant à la version 3.1.36.
Ils sont au format AAR, qui est juste un Zip du projet de construction.
Changez le nom en * .Zip, décompressez-le, à l'intérieur se trouve un classes.jar, qui est le pot de toutes les classes gps.
Si vous n'avez besoin d'aucune des ressources, vous pouvez ajouter le fichier jar à votre chemin de classe. Terminé.

ls -l /Applications/Programming/adt-bundle-mac-x86_64-20140702/sdk/extras/google/m2repository/com/google/Android/gms/play-services/
total 24
drwxr-xr-x+  8 Norrin  staff  272 Jan 13 01:08 3.1.36
drwxr-xr-x+  8 Norrin  staff  272 Jan 13 01:08 3.1.59
drwxr-xr-x+  8 Norrin  staff  272 Jan 13 01:08 3.2.25
drwxr-xr-x+  8 Norrin  staff  272 Jan 13 01:08 3.2.65
drwxr-xr-x+ 11 Norrin  staff  374 Feb 10 20:09 4.0.30
drwxr-xr-x+  8 Norrin  staff  272 Jan 13 01:08 4.1.32
drwxr-xr-x+  8 Norrin  staff  272 Jan 13 01:08 4.2.42
drwxr-xr-x+  8 Norrin  staff  272 Jan 13 01:08 4.3.23
drwxr-xr-x+  8 Norrin  staff  272 Jan 13 01:08 4.4.52
drwxr-xr-x+  8 Norrin  staff  272 Jan 13 01:08 5.0.89
drwxr-xr-x+  8 Norrin  staff  272 Jan 13 01:08 6.1.11
drwxr-xr-x+  8 Norrin  staff  272 Jan 13 01:08 6.1.71
drwxr-xr-x+  8 Norrin  staff  272 Feb  4 13:43 6.5.87
-rw-r--r--+  1 Norrin  staff  703 Jan 13 01:08 maven-metadata.xml
-rw-r--r--+  1 Norrin  staff   32 Jan 13 01:08 maven-metadata.xml.md5
-rw-r--r--+  1 Norrin  staff   40 Jan 13 01:08 maven-metadata.xml.sha1
14
BTRUE

vous pouvez télécharger google play services for froyo dans le SDK Manager qui fonctionne avec SDK 8 et supérieur mais pour obtenir une version spécifique n'est pas possible AFAIK. Le service google play actuel fonctionne avec 10 et plus

1
tyczj

L'une des exigences est de mettre dans le projet google-play-services_lib avec une version inférieure/égale au niveau de l'émulateur.

google-play-services_lib n'a rien à voir avec les versions de l'émulateur.

La question est de savoir comment télécharger une version plus ancienne de google-play-services_lib que celles téléchargées par Android sdk manager?

AFAIK, il n'y a aucun moyen de le faire. En outre, comme cela a été souligné, cela n'est pas nécessaire.

Si votre appareil était cassé ou quoi que ce soit, vous n'auriez pas la possibilité de tester votre programme

Cela n'a aucun sens. google-play-services_lib est un bibliothèque. Il ne s'agit pas des services Google Play eux-mêmes, mais d'une bibliothèque cliente pour utiliser les services Google Play.

Mais alors je dois utiliser la bibliothèque de support ce que j'aimerais éviter

Comme il a été noté, le package de support Android n'est pas lié au SDK Play Services. Certaines parties du SDK Play Services peuvent tiliser le Android Package de support (par exemple, SupportMapFragment), mais le SDK Play Services ne nécessite le Android Package de support.

1
CommonsWare