web-dev-qa-db-ja.com

古いGoogle Playサービスをダウンロードする方法は?

私はAndroid google maps v2 with Android emulator/Android studio 0.4.0を使用する予定です。要件の1つは、google-play-services_libのバージョンをemulator以下に設定することです。私のエミュレータはapi lv 17で動作します。質問は、google-play-services_libでダウンロードしたものよりも古いバージョンのAndroid sdk managerをダウンロードする方法ですか?

43
Jacob

これは古い質問であることを認識していますが、今日は同じ問題(エミュレーターではなく実際のデバイス)があり、解決策を見つけました。

コードを追加して最新バージョンにアップグレードするようユーザーに促すことができます(@ nathan-waltersのコメントを参照)が、複雑な理由から、私の場合はユーザーが既にインストールしたバージョンで作業する必要がありますデバイス(存在する場合)。したがって、古いバージョンのクライアントライブラリ(google-play-services_lib)でコンパイル/ビルドすることを好みます。

そこで、さらに調査して、Android SDKマネージャーが最新バージョンのGoogle Play Servicesを含む「extras」パッケージの検索とインストールに使用するxmlを解凍しました。
興味がある場合は、ここから始めてください: https://dl-ssl.google.com/Android/repository/addon.xml

Google-play-services_libのライブラリを提供する現在のバージョン(2014年11月10日現在):

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

古いバージョンはGoogleサーバー上の同じ場所にあります(いつでも消える可能性があります)。そのため、現在インストールされているライブラリを脇に移動して古いZipを手動でアンパックする準備ができている場合は、古いバージョンをインストールできます。私は次を見つけました:

同じ手法を使用すると、エミュレータの古いバージョンに組み込まれているアップグレードできない古いバージョンのGoogleマップ(Google Play Services)に対してテストできます。これらのすべてのバージョンをエミュレーターでテストしたわけではありませんが、Google API(API 19)に基づくAVDのエミュレーターでGoogleマップを正常にテストしました。

Googleは、エミュレータを最新の状態にしようと時々試みます。クライアントライブラリとエミュレーターの間のバージョンの非互換性の問題、およびそれらを修正するためのGoogleのさまざまな試みについて説明する問題追跡スレッドです。 https://code.google.com/p/Android/issues/detail?id=5788

[更新:]

@btrue 以下の回答を参照 現在、muchが私の回答よりも良い回答を持っています

に行きます:

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

aAR形式の古いリリースを含むディレクトリがあります-抽出のために.Zipに名前を変更してください。

90
Mike

受け入れられた答えは面倒です。 Googleは実際にはSDKマネージャーで古いバージョンを配布しています。
「Extras」の下には、「Google Repository」があります。
リポジトリには、バージョン3.1.36に戻るGPSライブラリがあります。
これらはAAR形式であり、ビルドプロジェクトの単なるZipです。
名前を* .Zipに変更し、解凍します。内部には、すべてのgpsクラスのjarであるclasses.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
14
BTRUE

google play services for froyoをダウンロードできます。SDK ManagerはSDK 8以降で動作しますが、特定のバージョンを取得することはできません。現在のGoogle Playサービスは10以上で動作します

1
tyczj

要件の1つは、プロジェクトgoogle-play-services_libをエミュレータレベル以下のバージョンで配置することです。

google-play-services_libは、エミュレータバージョンとは関係ありません。

問題は、Android SDKマネージャーによってダウンロードされたものよりも古いバージョンのgoogle-play-services_libをダウンロードする方法ですか?

私の知る限り、これを行う方法はありません。さらに、指摘されているように、これは必要ありません。

その後、デバイスが破損した場合、またはプログラムをテストできない場合

それはまったく意味がありません。 google-play-services_libライブラリです。 Google Play Services自体ではなく、Google Play Servicesを利用するためのクライアントライブラリです。

しかし、私は避けたいサポートライブラリを使用する必要があります

既に述べたように、AndroidサポートパッケージはPlay Services SDKに関連付けられていません。PlayServices SDKの一部はse the Androidサポートパッケージ(たとえば、SupportMapFragment)ですが、Play Services SDKはサポートしていません必須 Androidサポートパッケージ。

1
CommonsWare