Google Maps v2 auf dem Android-Emulator ausführen

Ich habe versucht, Google Maps v2 in meiner Android-Anwendung zu implementieren, aber leider bekomme ich anstelle von Karten folgende Nachricht:

Diese App wird nicht ohne Google Play-Dienste ausgeführt, die auf Ihrem Telefon fehlen.

Ist es möglich, diese Karten auf dem Android-Emulator (Plattform 4.2) auszuführen?

Im Moment können Sie mit Google Android Map API v2 Google Maps v2 nicht auf dem Android-Emulator ausführen. Sie müssen ein Gerät für Ihre Tests verwenden.

Für diejenigen, die auf die neueste Version von google-play-services_lib aktualisiert haben und / oder diesen Fehler haben, ist Google Play services out of date. Requires 3136100 but found 2012110 Google Play services out of date. Requires 3136100 but found 2012110 diese neuere Version von com.google.android.gms.apk (Google Play Services 3.1.36) und com.android.vending.apk (Google Play Store 4.1.6) funktionieren.

Testen Sie mit dieser Konfiguration unter Android SDK Tools 22.0.1. Eine andere Konfiguration, die auf reines Android und nicht auf Google zielt, sollte auch funktionieren.

  • Gerät: Galaxy Nexus
  • Ziel: Android 4.2.2 – API Level 17
  • CPU / ABI: ARM (armeabi-v7a)
  • Geprüft: Verwenden Sie Host-GPU

  1. Öffne den AVD
  2. Führe dies im Terminal / cmd aus

     adb -e install com.google.android.gms.apk adb -e install com.android.vending.apk 
  3. Starten Sie den AVD neu

  4. Viel Spaß beim Programmieren !!!

Ich fand diesen Weg der einfachste, sauberste und es funktioniert mit der neuesten Version der Software, mit der Sie alle Fehler beheben können.

Bitte versuche folgendes. Es war erfolgreich für mich .

Schritte:

  1. Erstellen Sie einen neuen Emulator mit dieser Konfiguration: AVD-Konfiguration

  2. Starten Sie den Emulator und installieren Sie die folgenden APK- Dateien: GoogleLoginService.apk , GoogleServicesFramework.apk und Phonesky.apk . Sie können dies mit den folgenden Befehlen tun:

     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/ 

    Links für APKs:

    1. GoogleLoginService.apk
    2. GoogleServicesFramework.apk
    3. Phonesky.apk AKA Google Play Store, Version 3.5.16
    4. Google Maps , v.6.14.1
    5. Google Play-Dienste , Version 2.0.10
  3. Installieren Sie Google Play-Dienste und Google Maps im Emulator

     adb install com.google.android.apps.maps-1.apk adb install com.google.android.gms-2.apk 
  4. Laden Sie die Google Play Service- sdkmanager->extra->google play service 4 von diesem Link und zusätzlich zum Ordner sdkmanager->extra->google play service .
  5. Importieren Sie google-play-services_lib von androidsdk\extras\google\google_play_services .
  6. Erstellen Sie ein neues Projekt und verweisen Sie auf das obige Projekt als Bibliotheksprojekt.
  7. Führen Sie das Projekt aus.

Ich habe Google Maps v2 mit diesem Handbuch erfolgreich auf einem Emulator installiert.
Sie sollten die folgenden Schritte ausführen:

  • Erstellen Sie einen neuen Emulator Nexus S, Android 2.3.3. Verwenden Sie nicht die Google API.
  • Installieren Sie com.android.vending.apk (Google Play Store, v.3.10.9)
  • Installieren Sie com.google.android.gms.apk (Google Play-Dienst, Version 2.0.12)

Ich empfehle den Emulator von Genymotion anstelle von Googles Emulatoren zu verwenden. Es startet viel schneller und reactjs fast in Echtzeit. Es unterstützt auch Google Play Services und damit Google Maps.

Google Maps auf Genymotion

Versuche es! Hier ist ein Blogbeitrag, der Ihnen beim Einrichten des Emulators hilft.

  • Wie richte ich einen schnellen Emulator für Android unter Linux ein?

Ich kann meinen Emulator verwenden, um meine App mit Google Map V.2 (mit Google Play Service V.4) auszuführen. Ich folgte Schritten, die andere mit Misserfolgen vorgeschlagen hatten, aber ich lernte daraus und brachte es irgendwie zum Laufen. Das ist wie:

  1. Zuallererst: Sie müssen Ihre Karten-App codiert haben. korrekt mit allen entsprechenden Berechtigungen eingerichtet in Ihrer Metadatei XML, und Google Play Services APK Teil Ihrer App. Um zu überprüfen, ob dies der Fall ist, müssen Sie Ihre App auf dem REAL-Gerät ausführen und wissen, dass sie dort mit ihrer Karte funktioniert. Dann können Sie mit der Verarbeitung Ihres Emulators fortfahren, wie unten gezeigt.

  2. Erstellen Sie einen neuen Emulator oder verwenden Sie Ihren vorhandenen Emulator mit Spezifikationen:

    • Zielname = Android 4.1.2
    • API-Stufe = 16
    • CPU = Beliebig. Ich fand jedoch, ARM ist viel schneller / responsiver als x86
    • Haben Sie genügend RAM-Speicher und Speicherplatz MB
  3. Führen Sie den Emulator aus (Ihr Zielemulator muss ausgeführt werden!)

  4. Laden Sie die folgenden APKs (verfügbar per Dropbox per 4/2/2013) in Ihr lokales Verzeichnis herunter (scannen Sie nach Viren!):

    • com.android.vending.apk , (Google Play Store, v.3.10.9)

    • com.google.android.gms.apk , (Google Play-Dienst, v.2.0.12)

  5. Installiere diese beiden APKs mit dem ADB-Befehl in deinen laufenden (Ziel-) Emulator:

    DOS / Konsolen-Eingabeaufforderung> adb -e install [Pfad zu APK-Datei]

    HINWEIS: Möglicherweise wurden diese APKs während dieses Testerrorss in Ihrem Emulator installiert und müssen aus irgendeinem Grund neu installiert werden. Sie müssen sie zuerst deinstallieren, indem Sie: adb -e deinstallieren (com.google.android.gms oder com.android.vending)

  6. Hier könnten die Dinge schwierig werden. Sie denken, dass Sie fertig sind, aber wenn Sie Ihre App mit Map erneut öffnen, erhalten Sie lediglich einen Fehler in Form von: “Google Play-Dienste veraltet. Erfordert 2012100, aber gefunden 2010110” und möglicherweise eine Schaltfläche “Google Play” aktualisieren Wenn dies der Fall ist, versuchen Sie NICHT, auf den Update-Button zu klicken, da dies nichts bewirkt. Ich habe diesen Fehler auch, und ich habe es durch diese beiden zusätzlichen Schritte getriggers:

    • Clean-Rebuild – Installiere meine App neu im Emulator
    • Starte meinen Emulator und starte ihn neu.
  7. Das ist es, es funktioniert jetzt gut.

Google hat das Targeting-API für virtuelle Geräte 23 aktualisiert. Es ist jetzt mit Google Play Services 9.0.80 ausgestattet. Wenn Sie also Google Maps API V 2.0 (ich verwende play-services-maps: 9.0.0 und play-services-location.9.0.0) verwenden, ist keine Umgehung erforderlich. Es funktioniert einfach!

Ich habe unsere App, die Google Maps API 2 erfordert, erfolgreich auf einer virtuellen AndroVM- Maschine ausgeführt.

AndroVM ist nicht mit Google Maps oder Google Play installiert, sondern enthält eine modifizierte Kopie des Cyanogen Gapps-Archivs, bei dem es sich um eine Reihe proprietärer Google-Apps handelt, die auf den meisten Android-Geräten installiert sind.

Die Anleitung, kopiert von der AndroVM FAQ:

Wie kann ich Google Apps installieren (einschließlich der Market / Play App)?

  • Laden Sie Google Apps herunter: gapps-jb-20121011-androvm.tgz [im Grunde das / system-Verzeichnis aus dem Cyanogen gapps-Archiv ohne die GoogleTTS-App, die auf AndroVM abstürzt]
  • Entpacken Sie die Datei gapps … tgz auf Ihrem Host – Sie erstellen ein Systemverzeichnis
  • Erhalte die Management-IP-Adresse deines AndroVM (“AndroVM Configuration” Tool) und mach “adb connect xyzt”
  • mach “adb root”
  • Wiederverbindung mit “adn connect xyzt”
  • mache “adb remount”
  • Mach “adb push system / / system /”

Ihre VM wird neu gestartet und Sie sollten Google Apps einschließlich Market / Play haben.

Sie haben keine Google Apps wie Google Maps, können aber vom Market / Play heruntergeladen werden.

Befolgen Sie diese statementen und installieren Sie Google Maps mit Google Play!

Einige großartige Nebenwirkungen der Verwendung einer VM anstelle des Emulators:

  • Sehr gute allgemeine performance
  • OpenGL-Beschleunigung
  • Google Play-Unterstützung

Die einzige Hürde auf der Straße war bisher das Fehlen von Multi-Touch-Gesten, was für eine Mapping-App ein Mist ist! Ich plane, dies mit einem versteckten UI-Mechanismus zu umgehen, also kein so großes Problem.

Sie müssen einen Emulator mit der Google API-Version ausprobieren. Jede Plattform hat zwei Versionen, Android und Android + Google APIs. Stellen Sie sicher, dass Sie beim Erstellen des AVD die Google APIs-Version für das Zielfeld auswählen.

Und die Seite Google Play APK für Google Play-Dienste sichern kann ebenfalls hilfreich sein.

Ich habe die obigen Schritte (von paniniluncher) versucht, aber folgende Nachricht erhalten:

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

Ich habe diese Nachricht erhalten, weil ich verschiedene Versionen der oben genannten Dateien benötigt habe. Um das Problem zu beheben, habe ich zunächst die oben genannten Dateien deinstalliert, die benötigten Versionen heruntergeladen (wie in der folgenden StackOverflow-Veröffentlichung beschrieben):

Google Play-Dienste sind veraltet. Benötigt 3025100, aber gefunden 2012110

und dann diese Dateien mit der `adb -e install [Pfad-zu-APK-Datei] installiert und dann den Emulator neu gestartet und es hat perfekt funktioniert!

Ich habe diese Frage bereits in einer Antwort auf Stack Overflow-Frage beantwortet. Probleme mit der Google-Anmeldeschaltfläche im Emulator . Es funktioniert nur für Android 4.2.2, aber Sie können den “Intel Atom (x86)” in AVD verwenden.

Ich denke, dass es einfach ist, es für andere Versionen von Android zu machen. Finde einfach die richtigen Dateien.