MapFragment o MapView getMap () devuelve null en Lollipop
He estado utilizando Google Maps API v2 durante mucho tiempo en Android 4.x versiones sin ningún problema. Ahora instalé la última versión de Lollipop en mis dispositivos Nexus (5 y 7) intentando materializar la aplicación.
Me gustaría señalar que todo está bien en KitKiat y el problema que estoy describiendo está emergiendo sólo en Lollipop.
- Google Maps Android API v2 - MarkerOptions métodos arrastrables y visibles
- Los azulejos del mapa parpadean entre el terreno y los tipos normales
- Firebase para servicios de juego por debajo de 9
- Import com.google.android.gms.common.api.GoogleApiClient; no se puede resolver
- Android implementando Google más error de inicio de sesión en mConnectionResult.hasResolution ()
En mi código fuente XML estoy usando MapFragment (biblioteca de servicios de Google Play versión 6.1.11).
<fragment android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" android:name="com.google.android.gms.maps.MapFragment"/>
En código Java estoy sobreescribiendo el método OnPause () para llegar al mapa:
GoogleMap map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
En esta línea arroja NullPointerException. En la aplicación de depuración es capaz de encontrar el fragmento, sin embargo, no es capaz de devolver GoogleMap. También he intentado utilizar MapView. También lanza null. La cosa más extraña para mí es que cargas del mapa sin un problema en app sí mismo pero en código no puedo alcanzarlo para trabajar con él.
- ¿Puedo usar google analytics en una aplicación lanzada para la tienda de bomberos kindle?
- Falta de servicios de Google Play en el Administrador de SDK
- No se puede agregar gms play services 9.0.1, google-services plugin wants 9.0.0
- Problemas de permiso para la ubicación en android Marshmallow applicaton
- Uso del nuevo ID de Anunciante de Android en un SDK
- Token de acceso recuperado: null. Com.google.android.gms.auth.GoogleAuthException: Desconocido
- ANR con TagManagerService
- LocationClient no conectado en el método "onConnected"
Yo tenía exactamente el mismo problema, pero esto es lo que funcionó para mí:
Reemplazar esto …
GoogleMap map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
con este…
GoogleMap map = getMapFragment().getMap();
Entonces desliza a este chico malo y dale un giro …
private MapFragment getMapFragment() { FragmentManager fm = null; Log.d(TAG, "sdk: " + Build.VERSION.SDK_INT); Log.d(TAG, "release: " + Build.VERSION.RELEASE); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { Log.d(TAG, "using getFragmentManager"); fm = getFragmentManager(); } else { Log.d(TAG, "using getChildFragmentManager"); fm = getChildFragmentManager(); } return (MapFragment) fm.findFragmentById(R.id.map); }
Google ahora hizo una manera más conveniente para obtener el mapa utilizando el siguiente método
myMapFragment.getMapAsync(new OnMapReadyCallback) { @Override public void onMapReady(GoogleMap googleMap) { myMap = googleMap; } });
Parece que esto podría ser un problema con una targetSdkVersion de 21: https://code.google.com/p/android-developer-preview/issues/detail?id=1947
Sin embargo, cambiar a getChildFragmentManager () funcionó para mí:
FindFragmentById para SupportMapFragment devuelve null en Android Studio
¿Has probado isGooglePlayServicesAvailable para comprobar por qué su devolución null? Null tiene muchas razones en getmap, intenta usar esto para comprobar por qué su dar null
- ¿Establecer el color de fondo de una vista de diseño a un degradado en Android?
- Cómo compilar la biblioteca de bifurcación en Gradle?