如何下载旧的谷歌播放服务?

时间:2014-01-07 21:42:51

标签: java android linux google-maps gradle

我将使用google maps v2来使用android emulator/android studio 0.4.0。其中一项要求是将版本低于/等于google-play-services_lib级别的项目emulator放入其中。我的模拟器适用于api lv 17。问题是,如何下载google-play-services_lib的旧版本而不是android sdk manager下载的版本?

4 个答案:

答案 0 :(得分:90)

我意识到这是一个老问题,但我今天遇到了同样的问题(对于真正的设备而不是模拟器)并找到了解决方案。

我知道您可以添加代码来提示用户升级到最新版本(请参阅@ nathan-walters的评论)但是,由于复杂的原因,在我的情况下,我需要使用用户已有的任何版本安装在他们的设备上(如果有的话),因此更喜欢用旧版本的客户端库编译/构建(google-play-services_lib)

因此,我进一步研究,解压缩Android SDK管理器用于查找和安装“额外”软件包的xml,包括最新版本的Google Play服务。
如果您有兴趣从这里开始:https://dl-ssl.google.com/android/repository/addon.xml

对于当前版本(截至2014年11月10日),您可以在以下位置为google-play-services_lib提供库:

https://dl-ssl.google.com/android/repository/google_play_services_6171000_r21.zip

旧版本位于google服务器上的相同位置(虽然它们可能随时消失),因此如果您准备将当前安装的库移到一边并手动解压缩旧版zip,那么您可以安装旧版本。我找到了以下内容:

使用相同的技术可以测试旧版本的模拟器中硬连线的不可升级旧版Google Maps(Google Play服务)。我没有针对模拟器测试所有这些版本,但已经在模拟器中成功测试了基于Google API的AVD(API 19)。

Google确实偶尔会尝试更新模拟器。这是一个问题跟踪器线程,讨论客户端库和模拟器之间的版本不兼容问题以及谷歌的各种修复尝试:https://code.google.com/p/android/issues/detail?id=57880

[UPDATE:]

@btrue see answer below现在有一个更好的答案而不是我的回答

转到:

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

您将在其中找到包含AAR格式的旧版本的目录 - 只需重命名为.zip即可进行提取。

答案 1 :(得分:14)

接受的答案太麻烦了。谷歌实际上确实在SDK管理器中分发旧版本 在&#34; Extras&#34;下,有#34; Google Repository&#34;。
在存储库中,GPS库可以追溯到版本3.1.36 它们采用AAR格式,这只是构建项目的一个拉链 将名称更改为* .zip,解压缩,里面是classes.jar,这是所有gps类的jar。
如果您不需要任何资源,可以将jar文件添加到类路径中。完成。

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

答案 2 :(得分:1)

您可以在适用于SDK 8及更高版本的google play services for froyo下载SDK Manager,但无法获得特定版本的AFAIK。目前的Google Play服务适用于10及以上

答案 3 :(得分:1)

  

要求之一是将项目google-play-services_lib放入版本低于/等于模拟器级别的版本。

google-play-services_lib与模拟器版本无关。

  

问题是,如何下载google-play-services_lib的旧版本而不是android sdk manager下载的版本?

AFAIK,没有办法做到这一点。此外,正如已经指出的那样,这不是必要的。

  

然后,如果您的设备损坏或任何您无法测试程序的能力

这没有任何意义。 google-play-services_lib。它不是Google Play服务本身,而是使用Google Play服务的客户端库。

  

但后来我需要使用支持库,我想避免使用

如前所述,Android支持包与Play Services SDK无关。部分Play Services SDK可以使用 Android支持包(例如SupportMapFragment),但Play Services SDK不需要 Android支持包。< / p>