Questa applicazione non funzionerà a meno che non si aggiorna Google errore servizi Giocare

? Florent Gz @ | Original: StackOverFlow
---

Sono un po ' perso in questo momento . Sto implementando un'applicazione Android utilizzando le mappe di Google .

Per farlo funzionare ho seguito alcuni tutorial che erano abbastanza efficiente . Comunque mi sono bloccato con questo " :

Questa applicazione non funzionerà a meno che non si aggiorna Google errore servizi Giocare

Per risolvere questo problema ho trovato alcuni trucchi http://tangmmeng.wordpress.com/2013/07/10/google-play-service-on-emulator/ o http://nemanjakovacevic.net/blog/english/2012/12/06/how-to-make-android-google-maps-v2-work-in-android-emulator/ che dicono che per risolvere questo problema è necessario prendere una configurazione speciale per l'emulatore, qui è la mia :

Questa applicazione non funzionerà a meno che non si aggiorna Google errore servizi Giocare

e di installare alcuni .apk sull'emulatore .

Questa applicazione non funzionerà a meno che non si aggiorna Google errore servizi Giocare

E la magia dovrebbe essere fatto e la mappa dovrebbe apparire che non è il mio caso .

Ho controllato che le mie comparse erano ben installati :

Questa applicazione non funzionerà a meno che non si aggiorna Google errore servizi Giocare

Ecco il mio AndroidManifest :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="mypack"
          android:versionCode="1"
          android:versionName="1.0">

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

    <permission android:name="mypack.permission.MAPS_RECEIVE"
                android:protectionLevel="signature"/>
    <uses-permission android:name="mypack.permission.MAPS_receive"/>

    <!-- Permission pour utiliser la connexion internet -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- Permission permettant de vérifier l'état de la connexion -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- Permission pour stocker des données en cache de la map -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <uses-feature
            android:glEsVersion="0x00020000"
            android:required="true" />

    <application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
        <meta-data
                android:name="com.google.android.maps.v2.API_KEY"
                android:value="MYKEY" />

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

        <activity android:name="Home"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>

</manifest>

Ecco il mio MainActivity

import android.app.Activity;
import android.os.Bundle;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;

public class Home extends Activity {
    /**
     * Called when the activity is first created.
     */
    private GoogleMap map;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
    }
}

e la corrispondente di layout :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        >
    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/map"
              android:name="com.google.android.gms.maps.MapFragment"
              android:layout_width="match_parent"
              android:layout_height="match_parent" />
</LinearLayout>

Spero di trovare qualche soluzione o quello che ho perso qui, vi ringrazio in anticipo .

---

Top 5 Risposta

1BladeCoder @

In Gestione Android SDK, è necessario installare " API di Google ( x86 Sistema Immagine) " in " Android 4.4.2 ( API 19 ) " . Chiudere Eclipse e riavviarlo .

Quindi creare un nuovo dispositivo virtuale Android in AVD Manager e scegliere " API di Google x86 ( Google Inc. ) - API Level 19" come destinazione . Controllare "Usa GPU Host" per garantire il disegno della mappa sarà accelerato .

Questo è tutto, questo nuovo emulatore avrà Giocare servizi preinstallati e sarà più veloce perché è un'immagine x86 .

2dvrm @

con Android in studio, l'unica cosa che mi ha aiutato è stato quello di ridurre la versione servizi Google Play nel file Gradle dall'ultima versione di questo :

compile 'com.google.android.gms:play-services:4.2.+'