web-dev-qa-db-ja.com

AndroidエミュレーターでGoogle Maps v2を実行する

私はAndroidアプリケーションにGoogle Maps v2を実装しようとしましたが、残念ながら地図の代わりにこのメッセージが表示されます:

This app won't run without Google Play services which are missing from your phone.

これらのマップをAndroidエミュレーター(Platform 4.2)で実行できますか?

46
Dawid

現時点では、Google Android Map API v2を参照していますが、AndroidエミュレーターでGoogle Maps v2を実行することはできません。テストにはデバイスを使用する必要があります。

30
AliR

Google-play-services_libの最新バージョンに更新したか、このエラーGoogle Play services out of date. Requires 3136100 but found 2012110com.google.Android.gms.apk(Google Play Services 3.1.36 ) および com.Android.vending.apk(Google Play Store 4.1.6) は動作するはずです。

Android SDK Tools 22.0.1でこの構成でテストします。 Googleではなく、純粋なAndroidをターゲットとする別の構成も機能するはずです。

  • デバイス:Galaxy Nexus
  • ターゲット:Android 4.2.2-APIレベル17
  • CPU/ABI:ARM(armeabi-v7a)
  • チェック済み:ホストGPUを使用

...

  1. AVDを開きます
  2. ターミナル/ cmdでこれを実行します

    adb -e install com.google.Android.gms.apk
    adb -e install com.Android.vending.apk
    
  3. AVDを再起動します

  4. コーディングを楽しんでください!!!

私はこの方法が最も簡単でクリーンであり、最新バージョンのソフトウェアで動作することを発見しました。これにより、すべてのバグ修正を取得できます。

25

以下を試してください。 私にとっては成功しました

手順:

  1. この構成で新しいエミュレータを作成します。 AVD configuration

  2. エミュレータを起動し、次の APK ファイルをインストールします:GoogleLoginService.apkGoogleServicesFramework.apk、およびPhonesky.apk。これを行うには、次のコマンドを使用します。

    adb Shell mount -o remount,yourAvdName -t yaffs2 /dev/block/mtdblock0 /system
    adb Shell chmod 777 /system/app
    adb Push GoogleLoginService.apk /system/app/
    adb Push GoogleServicesFramework.apk /system/app/
    adb Push Phonesky.apk /system/app/
    

    APKのリンク:

    1. GoogleLoginService.apk
    2. GoogleServicesFramework.apk
    3. Phonesky.apk 別名Google Playストア、v.3.5.16
    4. Googleマップ 、v.6.14.1
    5. Google Play開発者サービス 、v.2.0.10
  3. エミュレーターにGoogle PlayサービスとGoogleマップをインストールします

    adb install com.google.Android.apps.maps-1.apk
    adb install com.google.Android.gms-2.apk
    
  4. このリンク からGoogle Play Serviceリビジョン4をダウンロードし、フォルダーsdkmanager->extra->google play serviceに追加します。
  5. google-play-services_libからandroidsdk\extras\google\google_play_servicesをインポートします。
  6. 新しいプロジェクトを作成し、上記のプロジェクトをライブラリプロジェクトとして参照します。
  7. プロジェクトを実行します。
14
Kirit Vaghela

このガイド を使用して、エミュレータにGoogle Maps v2を正常にインストールしました。
次の手順を実行する必要があります。

  • 新しいエミュレーターNexus S、Android 2.3.3を作成します。 Google APIを使用しないでください。
  • インストール com.Android.vending.apk (Google Play Store、v.3.10.9)
  • インストール com.google.Android.gms.apk (Google Play Service、v.2.0.12)
12
Fido

Googleのエミュレータの代わりに Genymotionによるエミュレータ を使用することをお勧めします。それはずっと速く起動し、ほぼリアルタイムで応答します。また、Google Play Servicesもサポートしているため、Googleマップもサポートしています。

Google Maps on Genymotion

試してみる!エミュレーターのセットアップに役立つブログ投稿を以下に示します。

4
JJD

Google Map V.2(Google Play Service V.4)でアプリを実行するためにエミュレータを使用できます。私は他の人がいくつかの失敗で提案した手順に従いましたが、私はそれから学び、どういうわけかそれを機能させます。こうやって:

  1. まず、マップアプリをコーディングしておく必要があります。メタファイルXMLにすべての適切な権限をセットアップし、Google Play Services APKをアプリの一部として適切に設定します。これが正しいことを確認するには、REALデバイスでアプリを実行し、そこでマップで機能することを確認する必要があります。次に、以下に示すようにエミュレーターの処理に進むことができます。

  2. 新しいエミュレータを作成するか、既存のエミュレータを仕様で使用します:

    • ターゲット名= Android 4.1.2
    • APIレベル= 16
    • CPU =任意。ただし、ARMはx86よりもはるかに高速/応答性が高いことがわかりました。
    • 十分なRAMメモリとスペースMBがあります
  3. エミュレータを実行します(ターゲットエミュレータが実行されている必要があります!)

  4. 次のAPK(2013年4月2日にDropboxから入手可能)をローカルディレクトリにダウンロードします(ウイルスをスキャンしてください!):

  5. ADBコマンドを使用して、実行中の(ターゲット)エミュレーターにこれら2つのAPKをインストールします。

    DOS /コンソールプロンプト> adb -e install [path-to-APK-file]

    注:おそらく、この試行錯誤中にこれらのAPKがエミュレータにインストールされており、何らかの理由で再インストールする必要があります。まず、adb -e uninstall(com.google.Android.gmsまたはcom.Android.vending)でアンインストールする必要があります

  6. ここでは、物事がトリッキーになる可能性があります。完了したと思いますが、マップでアプリを再度開くと、「Google Play開発者サービスは最新ではありません。2012100が必要ですが2010110が見つかりました」という形式のエラーが表示され、ボタンが表示される場合がありますGoogle Playを「更新」します。この場合、何もしないので、更新ボタンをクリックしないでください。私もこのエラーを受け取ったので、これらの追加手順の両方で解決しました。

    • アプリをエミュレータにクリーン再構築して再インストールする
    • エミュレータをシャットダウンして再起動します。
  7. それだけです、今ではうまく動作します。

2
Panini Luncher

Googleは、API 23をターゲットとする仮想デバイスを更新しました。現在、Google Play Services 9.0.80に付属しています。したがって、Google Maps API V 2.0を使用している場合(play-services-maps:9.0.0およびplay-services-location.9.0.0を使用しています)、回避策は必要ありません。うまくいく!

2
AlanKley

Google APIのバージョンを使用してエミュレーターを試す必要があります。各プラットフォームには、AndroidとAndroid + Google APIの2つのバージョンがあります。 AVDを作成するときに、ターゲットフィールドでGoogle APIバージョンを選択するようにしてください。

また、ページデバイスがGoogle PlayサービスAPKを持っていることを確認も役立ちます。

1
sabadow

AndroVM 仮想マシンでGoogle Maps API 2を必要とするアプリを正常に実行しました。

AndroVMにはGoogleマップやGoogle Playがインストールされていませんが、ほとんどのAndroidデバイスにインストールされている独自のGoogleアプリのセットであるCyanogen Gappsアーカイブの変更されたコピーを提供します。

AndroVM FAQからコピーされた指示:

Google Apps(Market/Playアプリを含む)をインストールするにはどうすればよいですか?

  • Google Appsをダウンロードします。 gapps-jb-20121011-androvm.tgz [基本的に、AndroVMでクラッシュするGoogleTTSアプリなしのCyanogen gappsアーカイブの/ systemディレクトリ]
  • ホスト上のgapps…tgzファイルを展開します。システムディレクトリが作成されます。
  • AndroVMの管理IPアドレスを取得し(「AndroVM Configuration」ツール)、「adb connect x.y.z.t」を実行します
  • 「adb root」を実行
  • 「adn connect x.y.z.t」で再接続します
  • 「adb remount」を行う
  • 「adb Push system// system /」を実行します

VMが再起動し、Market/PlayなどのGoogleアプリが必要になります。

マップなどの一部のGoogle Appsはありませんが、Market/Playからダウンロードできます。

これらの手順に従って、Google Playを使用してGoogleマップをインストールしてください。

エミュレーターではなくVMを使用することのいくつかの素晴らしい副作用:

  • 非常に優れた一般的なパフォーマンス
  • OpenGLアクセラレーション
  • Google Playのサポート

これまでの道の中で唯一の衝突は、マルチタッチジェスチャの欠如でした。これは、マッピングアプリにとって厄介なことです。隠れたUIメカニズムを使用してこの問題を回避する予定なので、それほど大きな問題ではありません。

1
Joel Malone

Stack Overflowの質問への回答emulatorでのGoogleサインインボタンの使用に関するトラブル でこの質問に既に回答しています。 Android 4.2.2でのみ機能しますが、AVDで「Intel Atom(x86)」を使用できます。

他のバージョンのAndroidでも動作するようにするのは簡単だと思います。正しいファイルを見つけてください。

0

上記の手順を(paniniluncherで)試しましたが、次のメッセージが表示されました。

Google Play services out of date. Requires 3025100 but found 2012110

上記のファイルの異なるバージョンが必要なため、このメッセージを受け取りました。この問題を解決するには、最初に上記のファイルをアンインストールし、必要なバージョンをダウンロードしました(次のStackOverflowの投稿を参照してください)。

Google Play開発者サービスは最新ではありません。3025100が必要ですが、2012110が見つかりました

そして、これらのファイルを `adb -e install [path-to-APK-file]を使用してインストールし、エミュレータを再起動すると、完全に機能しました!

0
user2101068