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
?
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.
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
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
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.