MapView onCreate lanza NullPointerException en dispositivos LG

En primer lugar, este problema es para mí sólo reproducible en dispositivos LG (LG G4 y G5) con Android 6. El problema se introdujo a través de la última actualización de los servicios de Google Play. Si degrade manualmente los servicios de Google Play en mis dispositivos LG el error se ha ido. Desafortunadamente no puedo decirle a mis usuarios que hagan esto, así que necesito encontrar otra solución. Como este error es reproducible con mi aplicación en la tienda de reproducción, puedo estar seguro de que el error no se introdujo a través de mis propios cambios de código.

El error se produce al llamar al método onCreate () dentro de MapView. He subclasificado MapView y tengo mi propia clase como esta

public class MyMap extends MapView implements OnMapReadyCallback { ... } 

Dentro del constructor de MyMap llamo el método onCreate

 public MyMap() { ... this.onCreate(null); this.onResume(); this.getMapAsync(this); ... } 

En mis dispositivos LG con Android 6, esto arroja la siguiente excepción:

 java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources com.google.maps.api.android.lib6.impl.aq.e()' on a null object reference at com.google.maps.api.android.lib6.gmm6.vector.ah.getResources(:com.google.android.gms.DynamiteModulesB:340) at android.util.ResolutionOverride.<init>(ResolutionOverride.java:56) at android.view.SurfaceView.init(SurfaceView.java:207) at android.view.SurfaceView.<init>(SurfaceView.java:187) at com.google.maps.api.android.lib6.gmm6.vector.am.<init>(:com.google.android.gms.DynamiteModulesB:1) at com.google.maps.api.android.lib6.gmm6.vector.ah.<init>(:com.google.android.gms.DynamiteModulesB:3) at com.google.maps.api.android.lib6.gmm6.api.am.<init>(:com.google.android.gms.DynamiteModulesB:53) at com.google.maps.api.android.lib6.gmm6.api.am.a(:com.google.android.gms.DynamiteModulesB:49) at com.google.android.gms.maps.internal.bv.a(:com.google.android.gms.DynamiteModulesB:38) at com.google.maps.api.android.lib6.impl.az.a(:com.google.android.gms.DynamiteModulesB:80) at com.google.maps.api.android.lib6.impl.az.a(:com.google.android.gms.DynamiteModulesB:1) at com.google.maps.api.android.lib6.impl.cw.a(:com.google.android.gms.DynamiteModulesB:18) at com.google.android.gms.maps.internal.t.onTransact(:com.google.android.gms.DynamiteModulesB:17) at android.os.Binder.transact(Binder.java:387) 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.zzJy(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) 

Encontré un problema similar con el mapa nativo de Airbnb, pero su solución no parece relevante para mi problema. Https://github.com/airbnb/react-native-maps/issues/1358

Cualquier ayuda u otras ideas que podría probar son muy apreciados.

One Solution collect form web for “MapView onCreate lanza NullPointerException en dispositivos LG”

Puede intentar utilizar MapFragment en lugar de MapView porque para los servicios actualizados de google play 11.0.55 que no soportan MapView. Utilicé MapView su trabajado para mí.

Clase de actividad:

  private SupportMapFragment mMapFragment; @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { //return inflater.inflate(R.layout.fragment_find_direction, container, false); View view = inflater.inflate(R.layout.fragment_find_direction, null, false); SupportMapFragment mapFragment = (SupportMapFragment) this.getChildFragmentManager() .findFragmentById(R.id.map_fragment); mMapFragment.getMapAsync(this); mMapFragment = mapFragment; return view; } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); mMapFragment.onCreate(savedInstanceState); } 

Clase Xml:

 <fragment class="com.google.android.gms.maps.SupportMapFragment" android:id="@+id/map_fragment" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/main_lay" android:apiKey="@string/google_map_key" android:clickable="true" android:enabled="true" android:focusable="true" app:layout_collapseMode="parallax"> </fragment> 
  • Obtener la ubicación seleccionada de la actividad de Google Maps
  • Cómo hacer Google hacer en el centro cuando se utiliza doble Pulsar y pellizcar para acercar el androide?
  • Android Google Maps - fondo personalizado detrás de todos los marcadores
  • Google Maps Android, detecta la interacción del usuario en un mapa de la ubicación
  • Android maps: No se pudo encontrar el estilo 'mapViewStyle' en el tema actual
  • ¿Cuál es la mejor manera de soportar apis de Google Maps (v1 y v2)?
  • Dibujo libremente por los dedos en Google Map
  • Distancia entre geopuntos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.