前人未踏の領域へ Androidアプリ開発編

Androidアプリ開発に関する調査メモ置き場。古い記事にはアプリ以外も含まれます。

Google Play Services rev.13が利用できない件

KitKatがリリースされたのに伴い最新のGoogle Play Servicesに変更して
アプリをインストールしたところ、実行時に以下のようなエラーに遭遇した。

11-01 22:30:56.987: E/AndroidRuntime(29979): Caused by: java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value.  Expected 4030500 but found 0.  You must have the following declaration within the <application> element:     <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />

meta-dataの定義が新たに必要になったらしい。
ということで以下を新たにAndroidManifest.xml追記

<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />

今度は実行時エラーは出なくなったが開発者サービスを更新しろと言ってくる。
ただしマーケットにある最新版はすでに端末にインストールされている。
ログは以下のようになっている。

Google Play services out of date. Requires 4030500 but found 3266136

ということで端末側のPlayServiceアプリがまだGoogle Play Servicesの要求するバージョンに更新されていないようだ。
ちなみにこの際のチェックはAndroidManifestによって行っているらしい。

こちらはgoogle-play-services_libのAndroidManifest

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.google.android.gms"
    android:versionCode="4030530"
    android:versionName="4.0.30 (889083-30)" >

    <uses-sdk android:minSdkVersion="8"/>

</manifest>

こちらはgoogle-play-services_lib_froyoのもの

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.google.android.gms"
    android:versionCode="3265130"
    android:versionName="3.2.65 (834000-30)" >

    <uses-sdk android:minSdkVersion="8"/>

</manifest>

端末にインストールされている開発者サービスのバージョンは確かに3.2.65だ。
書き換えれば動くんだろうけど、froyo版を使いつつしばらく様子見が良さそう。


追記
Googleブログに記事が出てました。
http://android-developers.blogspot.jp/2013/10/google-play-services-40.html

まだ開発者サービスアプリが世に行き渡ってないけど
KitKatエミュレータ向けに先行リリースしたということらしい。なんてことを…。
そしてFroyoのサポートが打ち切られてた。なんてことを…。