2013年2月27日水曜日

Google Play services Rev.5でV2マップが起動時エラー

2013/02/26日 Google Play services他開発環境がアップデートされました。

※Google Play services(Google設定 / Google開発者サービス)を削除しようとの目的で来られた方へ
このサービスを削除すると、3月から切り替わる新しいGoogleマップなどが使えなくなります。
開発者から見るとこれらのサービスはこれからのGoogleが行うサービスの根幹です。
削除はおすすめしません。

V2マップのRev.4ではマップの回転時にメモリーリークが大量に発生してしまうバグがあったため
今回のアップデートで解消されてるかを確かめるべく、気づいた途端にSDK Manager経由でアップデートを行いました。



アップデート後、Google Maps Android API v2を利用するアプリをビルドして実行させたところ以下の様なエラーを報告して動作しません。

 エラーログを見てみると、Google Play servicesが out of dateとかで、落ちてます。
(02-27 02:41:07.514: W/GooglePlayServicesUtil(1031): Google Play services out of date.  Requires 3025100 but found 2012110)

 で、以下解決方法を備忘録

「原因」
Google Play servicesが古い (ログの解読による判定)

「解決法」
Google Play servicesを更新する。
具体的には、「Google Play開発者サービス」を更新します。


古いGoogle Play services を利用したアプリを実行すれば、
上の画像のようにアップデートの案内がかかるハズ?なのでしょうが
今回自作のアプリではうまく更新がされずエラー吐くだけ。

そこで自作アプリでのGooglePlay開発者サービスの更新は諦め、
SDKにあるGoogle Maps API Demos のサンプルを動作させて、
更新の催促画面を出すことができました。
(実際のアプリではサービスの更新状況を確認する仕組みが必要かもしれませんね
GooglePlayServicesAvailabilityExceptionとか捕まえたり、GooglePlayServicesUtil#isGooglePlayServicesAvailableで判定したり?)


 Google Playで「GooglePlay開発者サービス」のアップデート

OKOK
これでGoogle Maps Android API v2を使った
自作アプリも動作するようになりました。


Rev.4までに存在するメモリーリークが解決したかどうかは、この後....

寝てから別の端末見ると...
今回のアップデートで端末に「Google 設定」が追加されている端末が存在しました。
その自動アップデートされた端末では、なんの問題もなく動作したので

単に寝て待ってりゃ良かったてことですね。 orz..................................