2014/09/20

MapsActivity を表示したら Google Play開発者サービスの更新を求められてしまった場合の対処方法

Android で Google Maps v2 対応の MapsActivity や MapFragment を表示しようとすると、以下のようなエラーが出て表示できないことがあります。

「このアプリの実行には、Google Play開発者サービスの更新が必要です。」


このエラー、要は「Google Play開発者サービス」のバージョンが以下の状態になっているということです。

アプリをビルドする時にリンクしたバージョン > デバイスにインストールされているバージョン

そのため、普通は「更新」ボタンを押してデバイスにインストールされている「Google Play開発者サービス」を最新にすれば良いはずです。

問題点

しかし、そう簡単にいかない場合が存在します。
それは Android Studio がデフォルトでリンクするバージョンが Google Play で提供されているものより新しい場合です。
例えば、以下のように Android Studio のメニューから MapsActivity を追加します。

New → Google → Google Maps Activity

この時、dependencies には以下のように ver. 5.2.08 が追加されます(2014/9/19 現在)。

build.gradle
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.android.gms:play-services:5.2.08'
    compile 'com.android.support:appcompat-v7:20.0.0'
}

この時、デバイスにインストール出来る最新の「Google Play開発者サービス」は バージョン 5.0.89 です(2014/9/19 現在)。

「アップデートの削除」ボタンが表示されていることからも最新のものがインストールされていることがわかると思います。
つまり、「更新」ボタンを押しても「アンインストール」か「開く」しか出てこず、更新できないわけです…

解決策

デバイスの方は新しくできないので、ビルドに使用するバージョンを下げるしかありません。
以下のように、play-services のバージョンをデバイスのものと合わせます。

build.gradle
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.android.gms:play-services:5.0.89'
    compile 'com.android.support:appcompat-v7:20.0.0'
}

これで動くようになるはずです。

0 件のコメント: