it-swarm.com.de

Android Places-API: Google Play-Dienste im Emulator veraltet

Ich versuche, den PlacePicker der Google Places-API in meiner Android-App zu verwenden. Immer wenn ich versuche, die Auswahl zu erstellen, wird folgende Fehlermeldung angezeigt:

Google Play services out of date. Requires 7095000 but found 6774470

Leider bin ich an das Testen des Emulators gebunden, da ich kein physisches Gerät besitze. Das Bild des Emulators entspricht dem API-Level 22 x86 mit dem Ziel von Google APIs. Außerdem habe ich versucht, die Google Play Services-Bibliothek über die Datei build.gradle einzubinden:

'com.google.Android.gms:play-services:7.+'

Außerdem habe ich die Google Play-Dienste im SDK-Manager aktualisiert. Was mache ich falsch? Wie kann ich meine Google Play-Dienste aktualisieren, um die Places-API verwenden zu können?

26
user1594328

Ich hatte das gleiche Problem und musste mit API-Apps auf das API 21-Emulator-Image umsteigen. Dieser ist aktueller und funktioniert.

15
Tamas

Wenn der SDK Manager zeigt, dass Sie bereits die neueste Version installiert haben, können Sie Ihre Emulatordefinition einfach duplizieren.

Der duplizierte Emulator wird mit der neuesten Version des SDK geladen.

 enter image description here

9
Believe2014

Ich habe ein ähnliches Problem, wenn ich Google-Play-Dienste unter Android Wear verwende. Dann löse ich es, indem ich meine Android Wear-App-Version aktualisiere. (weil neuere Android-Wear-Versionen neuere Google-Play-Dienste enthalten)

Dieses Problem wird dadurch verursacht, dass die Version der Google-Play-Dienste auf Ihrem Gerät zu alt ist. Sie sollten Ihre Version der Google-Play-Dienste auf Ihrem Gerät aktualisieren.

Für den Emulator Sie müssen die Google-Play-Dienste auf Ihrem Emulator aktualisieren, anstatt Ihr SDK zu aktualisieren.

3
Morshues

Ich hatte das gleiche Problem und im Moment habe ich die Version auf 6774480 "aktualisiert", die Caches für ungültig erklärt und neu gestartet. Dann habe ich die Dependecies compile 'com.google.Android.gms:play-services:6+'.__ "heruntergestuft", und es funktioniert Damit es funktioniert, kann ich meine App testen

2
Mattia Scrofani

Wie bereits gesagt, ist der Grund dafür wahrscheinlich, dass das in der AVD installierte Google Play den Abhängigkeitsanforderungen nicht entspricht. Neben den von anderen vorgeschlagenen Lösungen habe ich versucht, meine benötigte Google Play-Version von 8.3 auf 8.1 zu senken, und das Problem ist gelöst.

2
superarts.org

mein Logcat ist 

Google Play-Dienste sind veraltet. Benötigt 12210000, hat jedoch 11947270 gefunden

also habe ich den Code von build.gradle geändert

implementation 'com.google.Android.gms:play-services-maps:12.0.0'

zu

implementation 'com.google.Android.gms:play-services-maps:11.0.0'

und es funktioniert

0
Mike Lin

Dies ist eine Problemumgehung, die ich gefunden habe, da keine der Lösungen hier für mich funktionierte. Außerdem wollte ich meinen Code nicht aktualisieren, um eine ältere Version der Wiedergabedienste zu verwenden. Am Ende installierte ich den Emulator mit Google Play anstelle von Google Apis. Als die Aufforderung kam, klickte ich einfach auf Update. Dies würde Sie zum Google Play Store führen und Sie müssen lediglich die Play-Services von dort aus aktualisieren. Der einzige Nachteil hierbei ist, dass Sie sich bei dieser Methode mit einem Google-Konto beim Emulator anmelden müssen. Aber für meine Anwendungsfälle war es ausreichend .  Google play instead of google api

0
Atul

Dieses Problem hatte ich nur beim API 22-Emulator. 21 und 23 waren in Ordnung und ich hatte keine Probleme mit physischen Geräten.

Ich war neugierig zu wissen, ob diese niedrige Version für GCM von entscheidender Bedeutung war oder nicht.

if (checkPlayServices()) {
              // Start IntentService to register this application with GCM.
              Intent intent = new Intent(this, ImpatientRegistrationIntentService.class);
              startService(intent);
} else {<<--   Added this as a bypass as my emulator complained about versions
              Intent intent = new Intent(this, ImpatientRegistrationIntentService.class);
              startService(intent);
}

Interessanterweise erhielt der API 22-Emulator ein Token von GCM und empfing problemlos Downstream-Push-Nachrichten.

0
formica