Google Play Services missing on Android 2.2 emulator while using Google Maps API v2

20,305

Solution 1

"To test your app when using the Google Play services SDK, you must use The Android emulator with an AVD that runs the Google APIs platform based on Android 4.2.2 or higher."

From http://developer.android.com/google/play-services/setup.html

Solution 2

To test your app when using the Google Play services SDK, you must use either:

A compatible Android device that runs Android 2.3 or higher and includes Google Play Store. The Android emulator with an AVD that runs the Google APIs platform based on Android 4.2.2 or higher.

Solution 3

Please check the link http://developer.android.com/google/play-services/setup.html

there is clearly mentioned that you must provide a physical development device on which you can run and debug your app.

Note: Google Play services is not supported on the Android emulator — to develop using the APIs, you need to provide a development device such as an Android phone or tablet.

Share:
20,305
Anar Bayramov
Author by

Anar Bayramov

Senior Software Developer. [email protected] https://www.anar-bayramov.com

Updated on November 18, 2020

Comments

  • Anar Bayramov
    Anar Bayramov over 3 years

    Hey I am trying to use Google Maps on my emulator even though I've installed Google Play Services library when I run the app it says

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

    on LogCat I get the warning about it but not really sure why I am getting this.

    my MainActivity.java

    package com.mapsmaps;
    
    import android.os.Bundle;
    import android.support.v4.app.FragmentActivity;
    import android.view.Menu;
    
    import com.google.android.gms.maps.GoogleMap;
    import com.google.android.gms.maps.SupportMapFragment;
    
    public class MainActivity extends FragmentActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            GoogleMap mapa = ((SupportMapFragment) getSupportFragmentManager()
                    .findFragmentById(R.id.map)).getMap();
    
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.activity_main, menu);
            return true;
        }
    }
    

    activity_main.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" >
    
        <fragment
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/map"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            class="com.google.android.gms.maps.SupportMapFragment" />
    
    </RelativeLayout>
    

    AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.mapsmaps"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="8" />
    
        <permission
            android:name="com.mapsmaps.permission.MAPS_RECEIVE"
            android:protectionLevel="signature" />
    
        <uses-permission android:name="com.mapsmaps.permission.MAPS_RECEIVE" />
    
        <uses-feature
            android:glEsVersion="0x00020000"
            android:required="true" />F
    
        <uses-permission android:name="android.permission.INTERNET" />
        <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" />
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" 
            >
            <activity
                android:name="com.mapsmaps.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    
            <meta-data
                android:name="com.google.android.maps.v2.API_KEY"
                android:value="AIzaSyBdbj4iXi0SijKjJDrJw5RigtSpQcaID7Q" />
        </application>
    
    </manifest>
    

    LogCat -

    D/dalvikvm(451): DexOpt: couldn't find field 
        Landroid/content/res/Configuration;.smallestScreenWidthDp
    W/dalvikvm(451): VFY: unable to resolve instance field 24
    D/dalvikvm(451): VFY: replacing opcode 0x52 at 0x0012
    D/dalvikvm(451): VFY: dead code 0x0014-0018 in 
        Lcom/google/android/gms/common/GooglePlayServicesUtil;.b 
        (Landroid/content/res/Resources;)Z
    W/GooglePlayServicesUtil(451): Google Play services is missing.
    W/GooglePlayServicesUtil(451): Google Play services is missing.
    W/GooglePlayServicesUtil(451): Google Play services is missing.
    W/GooglePlayServicesUtil(451): Google Play services is missing.
    W/GooglePlayServicesUtil(451): Google Play services is missing.
    W/GooglePlayServicesUtil(451): Google Play services is missing.
    W/GooglePlayServicesUtil(451): Google Play services is missing.
    

    library screenshot

    emulator screenshot