我将使用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
下载的版本?
答案 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>