title: Google maps v2 grey screen on AVD with 4.3 SDK 18
body: <p>I created my google api key for google maps v2 for android, everything is set up in eclipse for google maps (using google+api build, linking to google play services, api key sorted, etc), I can view a map app fine on my phone but when I view the same app on the AVD it's going to the right location and I can see all the google map overlays (such as zoom button) but there is no map, it is just a grey box. Networking is fine as well.</p>
  
  <p>I am using the latest 4.3 API 18 build and my AVD is the default Nexus One. Prior to this I got the dreaded 'update google play services' message which I found was due to maps v2 simply not working on 4.2 so I upgraded reading that maps should work ok with SDK 18 on AVD.</p>
  
  <p>Any idea why it's not showing? I did notice when I start the AVD it says using software opengl but I'd have thought it was ok.</p>
  
  <p>I've read various stackoverflow articles but they all point at an incorrect configuration and mine is fine and working just dandy when I send it to my phone and it's throwing no errors.</p>
  
  <p>If it's any help here are some snippets of code I'm using.</p>
  
  <p>manifest:</p>
  
  <pre><code>&lt;uses-sdk android:minSdkVersion="9" android:targetSdkVersion="18" /&gt;
  &lt;uses-permission android:name="android.permission.INTERNET"/&gt;
  &lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/&gt;
  &lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&gt;
  &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&gt;
  &lt;uses-feature android:glEsVersion="0x00020000" android:required="true" /&gt;
  &lt;uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/&gt;
  &lt;uses-library android:name="com.google.android.maps" /&gt;
  &lt;meta-data android:name="com.google.android.maps.v2.API_KEY" 
          android:value="XXXXXXXXXXXXXXXXXXXX"/&gt;
  </code></pre>
  
  <p>layout snippet:</p>
  
  <pre><code>&lt;fragment
      android:id="@+id/worldmap"
      android:name="com.google.android.gms.maps.SupportMapFragment"
      android:layout_width="match_parent"
      android:layout_height="match_parent" /&gt;
  </code></pre>
  
  <p>code to initialise a map:</p>
  
  <pre><code>private void initialiseMap() {
      if (googleMap == null) {
          googleMap = ((SupportMapFragment) getFragmentManager().findFragmentById(
                  R.id.worldmap)).getMap();
  
          // check if map is created successfully or not
          if (googleMap == null) {
              Toast.makeText(activity.getApplicationContext(),
                      "Unable to create maps", Toast.LENGTH_SHORT)
                      .show();
          }
      }       
  }
  </code></pre>
  
  <p>code to display the map:</p>
  
  <pre><code>private void displayLocation(Location l, String text) {
      if(googleMap!=null) {
          googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
          LatLng ll=new LatLng(l.getLatitude(), l.getLongitude());
          CameraPosition cp=new CameraPosition.Builder()
              .target(ll)
              .zoom(18)
              .build();
  
          googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cp));
          Toast.makeText(activity, l.getLatitude()+":"+l.getLongitude(), Toast.LENGTH_LONG).show();
  
      }
  }
  </code></pre>