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サービスを更新するにはどうすればよいですか?
私は同じ問題を抱えていたので、GoogleアプリでAPI 21エミュレーターイメージに移行する必要がありました。 1は、より最新であり、かつ動作すること。
Android wearでGoogle-Play-servicesを使用すると、同様の問題が発生します。その後、Android wearアプリのバージョンを更新します。 Androidウェアバージョンには新しいGoogle-Play-servicesが含まれます)
この問題は、デバイス上のGoogle-Play-servicesのバージョンが古すぎるため、デバイス上のGoogle-Play-servicesのバージョンを更新する必要があります。
エミュレーターの場合、SDKを更新する代わりに、エミュレーターでGoogle-Play-servicesを更新する必要があります。
私は同じ問題を抱えていたので、今すぐバージョンを6774480に「更新」してキャッシュを無効にしてから再起動し、依存関係を「ダウングレード」しましたcompile 'com.google.Android.gms:play-services:6+'
そしてそれは動作します、それは本当の解決策ではないことを知っていますが、アプリをテストできるように動作させるには悪い方法です
他の人が言ったように、その理由はおそらく、AVDにインストールされたGoogle Playが依存関係の要件と一致しないことです。他の人が提案した解決策に加えて、必要なGoogle Playバージョンを8.3から8.1に下げようとしましたが、問題は解決しました。
私の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'
そしてそれは動作します
この問題は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からトークンを取得し、問題なくダウンストリームプッシュメッセージを受信しました。