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> 
  • Cambio entre la API de Google Maps para Android v2 DEBUG y la clave de API de RELEASE
  • Quiero implementar un progreso de búsqueda en Google Maps como en la imagen a continuación
  • TileProvider método getTile - necesita traducir xyy a lat / long
  • Cómo guardar agregados google mapas superposiciones en una aplicación para Android?
  • Google Maps Android V2 - Pantalla en blanco
  • Android Google Maps v2 - Tecla de depuración vs tecla de liberación
  • Google Maps V2 no funciona en la producción con la clave correcta
  • INSTALL_FAILED_MISSING_SHARED_LIBRARY un proplem de emulador de android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.