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.
- Problema de compilación en Android Studio con Google Play Services
- No se puede obtener el código de autorización con el inicio de sesión de Google+ para Android: INVALID_SCOPE
- Accede a las compras en la aplicación del perfil principal en el perfil restringido de Android
- Los servicios de Google Play están desactualizados. Requiere 4030500 pero fue encontrado 3266132
- No se puede lanzar el proyecto de la biblioteca de Android?
Mi problema es que getMap () devuelve siempre null.
He probado la llamada en 3 puntos diferentes:
- OnCreate ()
- En resumen()
- 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?
- Google Maps Android API no coincide entre cliente y paquete
- Proguard con google-play-services
- Código fuente de Google Play Services
- No se pudo resolver: com.google.android.gms: play-services-cast: 9.8.00
- No se encontró el recurso de servicio de Google Play
- Cómo detectó las referencias de Android
- ANR con TagManagerService
- Servicios de Google Play Tu aplicación no está lista para publicarse
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 } } };