¿Por qué google map v2 de repente se estrelló por java.lang.NullPointerException: Intento de obtener la longitud de matriz nula?

Tengo un problema causado por NullPointerException. La aplicación comienza a fallar hoy cuando intento hacer mMapView.onCreate (savedInstanceState); Pero ayer estuvo bien. Acabo de cambiar mi archivo de diseño a otro (similar) con otro nombre. Aquí está la excepción:

E / AndroidRuntime: FATAL EXCEPTION: main Proceso: com.parking.android, PID: 17585 java.lang.NullPointerException: Intento de obtener longitud de null array en maps.Gaa (Fuente desconocida) en maps.VNa (Fuente desconocida) en los mapas (Fuente desconocida) en maps.ad.ae.a (Fuente desconocida) en maps.ad.ta (Fuente desconocida) en maps.ad.Ra (fuente desconocida) en uo.onTransact (: Com.google.android.gms.DynamiteModulesB: 66) en android.os.Binder.transact (Binder.java:385) en com.google.android.gms.maps.internal.IMapViewDelegate $ zza $ zza.onCreate ( Fuente desconocida) en com.google.android.gms.maps.MapView $ zza.onCreate (fuente desconocida) en com.google.android.gms.dynamic.zza $ 3.zzb (fuente desconocida) en com.google.android.gms .dynamic.zza $ 1.zza (Fuente desconocida) en com.google.android.gms.maps.MapView $ zzb.zzbow (Fuente desconocida) en com.google.android.gms.maps.MapView $ zzb.zza (Fuente desconocida ) En com.google.android.gms.dynamic.zza.zza (fuente desconocida) en com.google.android.gms.dynamic.zza.onCreate (origen desconocido) en com.goog Le.android.gms.maps.MapView.onCreate (fuente desconocida) en com.parking.android.map.fragment.MapsFragment.initMap (MapsFragment.java:105) en com.parking.android.map.fragment.MapsFragment.onCreateView (MapsFragment.java:92) en com.parking.android.base_arch.fragment.BaseFragment.onCreateView (BaseFragment.java:48) en android.support.v4.app.Fragment.performCreateView (Fragment.java:1974) en android. Support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1067) en android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1252) en android.support.v4.app.BackStackRecord.run (BackStackRecord. Java: 742) en android.support.v4.app.FragmentManagerImpl.execPendingActions (FragmentManager.java:1617) en android.support.v4.app.FragmentManagerImpl $ 1.run (FragmentManager.java:517) en android.os.Handler. HandleCallback (Handler.java:815) en android.os.Handler.dispatchMessage (Handler.java:104) en android.os.Looper.loop (Looper.java:194) en android.app.ActivityThread.main (ActivityThread.java : 5550) en java.lang.reflect.Method.invoke (Método nativo) en java.lang.reflect.Method.invoke (Method.java:372) en com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit .java: 955) en com.android.internal.os.ZygoteInit.main (ZygoteInit.java:750)

Y aquí está un poco de mi código con mapView:

@Override protected void onCreateView(Bundle savedInstanceState) { super.onCreateView(savedInstanceState); initMap(savedInstanceState); } private void initMap(Bundle savedInstanceState) { mMapView.onCreate(savedInstanceState); mMapView.onResume(); try { MapsInitializer.initialize(getActContext()); } catch (Exception e) { e.printStackTrace(); } mMapView.getExtendedMapAsync(this); locationManager = (LocationManager) getContext().getSystemService(Context.LOCATION_SERVICE); try { locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 400, 1000, this); } catch (SecurityException e) { Log.e(TAG, "onLocationChanged: ", e); } } @Override public void onPause() { mMapView.onPause(); super.onPause(); } @Override public void onResume() { super.onResume(); mMapView.onResume(); } @Override public void onDestroy() { mMapView.onDestroy(); super.onDestroy(); } @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; presenter.getParkings(); mMap.setOnMarkerClickListener(this); mMap.setMyLocationEnabled(true); mMap.getUiSettings().setMyLocationButtonEnabled(false); } @Override public void onLocationChanged(Location location) { if (mMap == null) return; LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(latLng, 14); mMap.animateCamera(cameraUpdate); try { locationManager.removeUpdates(this); } catch (SecurityException e) { Log.e(TAG, "onLocationChanged: ", e); } } 

EDIT 2: Este error se soluciona en las versiones más recientes de Google Maps.

EDIT: Un usuario ha señalado que este error está ocurriendo también en los dispositivos 7.0, así que tenga en cuenta que puede cambiar android:maxSdkVersion="22" a una versión apropiada de Sdk.

El problema sólo está ocurriendo en 5.1.1 dispositivos con roms personalizados como Resurrection Remix. No sé la razón, pero puedes solucionarlo añadiendo esto a tu manifiesto, como se ve en https://stackoverflow.com/a/39696819/4208583 y https://stackoverflow.com/a/39724556/4208583 .

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="22" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="22" /> 
  • ¿Cómo obtener detalles del hospital con la especialización usando google map para android?
  • ¿Cómo mover la cámara cuando el marcador sale de la pantalla?
  • Cómo mostrar lugares cercanos como atm, hospitales en android google map?
  • Google Maps v2 en el Android Studio. No se encontró GeoPoint
  • ¿Cuál es el enfoque correcto para crear una aplicación para Android?
  • Android Maps API v2 con marcadores personalizados
  • Error al inflar fragmento de clase para SupportMapFragment
  • Cómo obtener coordenadas de una dirección en android
  • Google maps api - Firma no válida
  • android.view.inflateexception binario archivo xml línea # 6 error o inflar fragmento de clase
  • Diferencia de versión de la API de Google Maps
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.