web-dev-qa-db-ja.com

Android Places API:エミュレーターでのGoogle Play開発者サービスの期限切れ

AndroidアプリでGoogle Places APIのPlacePickerを利用しようとしています。ただし、ピッカーを作成しようとすると、次のエラーメッセージが表示されます。

Google Play services out of date. Requires 7095000 but found 6774470

残念ながら、物理デバイスを所有していないため、エミュレータでのテストに縛られています。エミュレーターのイメージは、Google APIターゲットを使用したAPIレベル22 x86です。さらに、私はbuild.gradleファイルを通じてGoogle Play Servicesライブラリを含めようとしました:

'com.google.Android.gms:play-services:7.+'

また、SDKマネージャーでGoogle Play Servicesを更新しました。私は何を間違えていますか? Places APIを使用できるように、Google Playサービスを更新するにはどうすればよいですか?

26
user1594328

私は同じ問題を抱えていたので、GoogleアプリでAPI 21エミュレーターイメージに移行する必要がありました。 1は、より最新であり、かつ動作すること。

15
Tamas

SDKマネージャーに、最新バージョンが既にインストールされていることが示されている場合は、エミュレーター定義を単純に複製できます。

複製されたエミュレーターには、SDKの最新バージョンがロードされます。

enter image description here

9
Believe2014

Android wearでGoogle-Play-servicesを使用すると、同様の問題が発生します。その後、Android wearアプリのバージョンを更新します。 Androidウェアバージョンには新しいGoogle-Play-servicesが含まれます)

この問題は、デバイス上のGoogle-Play-servicesのバージョンが古すぎるため、デバイス上のGoogle-Play-servicesのバージョンを更新する必要があります。

エミュレーターの場合、SDKを更新する代わりに、エミュレーターでGoogle-Play-servicesを更新する必要があります

3
Morshues

私は同じ問題を抱えていたので、今すぐバージョンを6774480に「更新」してキャッシュを無効にしてから再起動し、依存関係を「ダウングレード」しましたcompile 'com.google.Android.gms:play-services:6+'そしてそれは動作します、それは本当の解決策ではないことを知っていますが、アプリをテストできるように動作させるには悪い方法です

2
Mattia Scrofani

他の人が言ったように、その理由はおそらく、AVDにインストールされたGoogle Playが依存関係の要件と一致しないことです。他の人が提案した解決策に加えて、必要なGoogle Playバージョンを8.3から8.1に下げようとしましたが、問題は解決しました。

2
superarts.org

私のlogcatは

古いGoogle Play開発者サービス。 12210000が必要ですが、11947270が見つかりました

だから私はbuild.gradleのコードを変更しました

implementation 'com.google.Android.gms:play-services-maps:12.0.0'

implementation 'com.google.Android.gms:play-services-maps:11.0.0'

そしてそれは動作します

0
Mike Lin

ここでの解決策はどれも役に立たなかったので、これは私が思いついた回避策です。また、古いバージョンのplayサービスを使用するようにコードを更新したくありませんでした。私は最終的にGoogle APIではなくGoogle Playでエミュレータをインストールし、プロンプトが表示されたら更新をクリックしました。これにより、Google Playストアに移動し、そこからPlayサービスを更新するだけです。ここで注意するのは、この方法では、Googleアカウントでエミュレーターにサインインする必要があるということです。しかし、私のユースケースではそれで十分でした。 Google play instead of google api

0
Atul

この問題はAPI 22エミュレーターでのみ発生しました。 21と23は問題なく、物理デバイスに問題はありませんでした。

この低バージョンがGCMにとって重要かどうかを知りたいので、とにかく続行するようにコードを変更しました。

if (checkPlayServices()) {
              // Start IntentService to register this application with GCM.
              Intent intent = new Intent(this, ImpatientRegistrationIntentService.class);
              startService(intent);
} else {<<--   Added this as a bypass as my emulator complained about versions
              Intent intent = new Intent(this, ImpatientRegistrationIntentService.class);
              startService(intent);
}

興味深いことに、API 22エミュレーターはGCMからトークンを取得し、問題なくダウンストリームプッシュメッセージを受信しました。

0
formica