Servicio de Google Play – SupportMapFragment.getMap () devuelve siempre null

Posible duplicado:
¿Cómo sé que el mapa está listo para utilizarse cuando se utiliza el SupportMapFragment?

Actualmente estoy probando la nueva API de Google Maps V2 pero realmente tengo problemas para que funcione correclty.

Mi problema es que getMap () devuelve siempre null.

He probado la llamada en 3 puntos diferentes:

  1. OnCreate ()
  2. En resumen()
  3. En un controlador que se llama unos segundos después de que el mapa ya está visible en la pantalla

Aquí está el código:

public class MapActivity extends FragmentActivity { private SupportMapFragment mMapFragment; @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); setupMap(); } @Override protected void onResume() { super.onResume(); setupMap(); new Handler().postDelayed(new Runnable() { @Override public void run() { setupMap(); } }, 5000); } private void setupMap() { if (getSupportFragmentManager().findFragmentById(R.id.fragment) == null) { mMapFragment = CustomMapFragment.newInstance(); getSupportFragmentManager().beginTransaction() .add(R.id.map_wrapper, mMapFragment).commit(); } GoogleMap map = mMapFragment.getMap(); if (map != null) { mMapFragment.getMap().getUiSettings().setZoomControlsEnabled(true); mMapFragment.getMap().getUiSettings().setZoomGesturesEnabled(true); mMapFragment.getMap().setMyLocationEnabled(true); } } 

¿Algo que estoy haciendo mal?

Como CommonsWare declaró en la pregunta vinculada, el problema sólo ocurre cuando se crea el SupportMapFragment programación y no una etiqueta XML <fragment> .

Si se crea mediante programación, el mapa estará disponible en la llamada onActivityCreated() . Así que mi solución es la siguiente:

 mMapFragment = new SupportMapFragment() { @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); GoogleMap map = mMapFragment.getMap(); if (map != null) { //Your initialization code goes here } } }; 
  • Saltar marcadores en Android Maps API v2
  • ¿La versión 3 de la facturación en aplicaciones de Google Play admite reembolsos?
  • La aplicación para Android se está bloqueando debido a V / GoogleSignatureVerifier: Firma no válida
  • Puedo editar el texto del botón de inicio de sesión en google?
  • Administrador de etiquetas: ¿Cómo cargar el contenedor predeterminado binario?
  • Android Studio 2.2 Google Play servicios de sincronización Error
  • ¿Deberíamos preferir AdMob en los servicios de Google Play en comparación con el "antiguo" SDK de AdMob
  • Se requiere Google Play Services, pero Google Play (mercado) no está instalado. ¿Qué hacer?
  • Google Play Services hace gradle para ignorar la configuración de proguard
  • BaseGameUtils Error desconocido, onConnectionFailed: resultado 4
  • IllegalStateException en el servicio de juegos de Google Play no tiene sentido
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.