NPE utilizando Google maps services en mapView.onCreate (…)

Fondo

Nuestra aplicación tiene acceso a Google Maps, y uno de los fragmentos necesita mostrar un mapa. Debido a algunas limitaciones, tuvimos que usar MapView en lugar de MapFragment, como tal:

@Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); MapsInitializer.initialize(getActivity().getApplicationContext()); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout...., null); mMapView = (MapView) rootView.findViewById(R.id.map); mMapView.onCreate(savedInstanceState); mMapView.getMapAsync(...); //... return rootView; } 

El problema

Usando Crashlytics, tenemos muchos informes de fallos en varios dispositivos y versiones de Android.

El error muestra este error:

 Fatal Exception: java.lang.NullPointerException at com.google.maps.api.android.lib6.gmm6.m.ad.a(Unknown Source) at com.google.maps.api.android.lib6.gmm6.cha(Unknown Source) at com.google.maps.api.android.lib6.gmm6.cya(Unknown Source) at com.google.maps.api.android.lib6.e.bd.a(Unknown Source) at com.google.maps.api.android.lib6.e.ev.a(Unknown Source) at com.google.maps.api.android.lib6.e.af.a(Unknown Source) at com.google.android.gms.maps.internal.w.onTransact(SourceFile:66) at android.os.Binder.transact(Binder.java:310) at com.google.android.gms.maps.internal.IMapViewDelegate$zza$zza.onCreate(Unknown Source) at com.google.android.gms.maps.MapView$zza.onCreate(Unknown Source) at com.google.android.gms.dynamic.zza$3.zzb(Unknown Source) at com.google.android.gms.dynamic.zza$1.zza(Unknown Source) at com.google.android.gms.maps.MapView$zzb.zzzW(Unknown Source) at com.google.android.gms.maps.MapView$zzb.zza(Unknown Source) at com.google.android.gms.dynamic.zza.zza(Unknown Source) at com.google.android.gms.dynamic.zza.onCreate(Unknown Source) at com.google.android.gms.maps.MapView.onCreate(Unknown Source) at ... 

Esto es lo que Crashlytics me dijo acerca de los dispositivos y las versiones de Android:

Versiones de Android: 4.2.1, 4.2.2, 4.4.2, 5.0, 5.0.2, 5.1, 6.0, 6.0.1.

Dispositivos:

  • Huawei: G610 U30, G6 U10, Ascent G510
  • Wiko: Lenny, Rainbow Jam, señales de la autopista
  • ZTE: Staraddict II plus, Z740G, hoja ZTE III

y otros

Lo que he intentado

He intentado buscar el problema, y ​​sólo uno similar que he encontrado es el siguiente:

https://code.google.com/p/gmaps-api-issues/issues/detail?id=9021

Sin embargo, no puedo encontrar una solución o una solución para ello, y no veo cuando se supone que debe arreglarse, y si es realmente el mismo problema (porque la descripción no es lo mismo).

La pregunta

¿Por qué ocurre?

Hay alguna manera de arreglarlo? ¿Alguna solución? ¿Es el problema que he encontrado – realmente lo que busco?

  • No puedo encontrar la dependencia de maven para que las API de Google usen mapas
  • Etiqueta dentro de Polyline Google Maps V3
  • Cómo actualizar dinámicamente un elemento de superposición específico
  • Google maps api v2 - El tipo android.app.Fragment no se puede resolver. Se hace referencia indirectamente a los archivos .class requeridos
  • Cómo mostrar la ubicación actual como flecha en Google Maps Android API V2?
  • MyLocationOverlay o LocationManager para actualizar la ubicación actual
  • Agregar una imagen de url a InfoWindow personalizado google maps v2
  • Google maps api no coloca el marcador en la ubicación correcta
  • ¿Se puede ampliar el tamaño de la superposición con el mapa de google en android?
  • Establecer GoogleMapOptions para la subclase MapFragment
  • Android Studio con gradle y Google Maps v2
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.