GetSupportFragmentManager (). FindFragmentById (R.id.map) comenzó a devolver null

Tengo un fragmento de mapa dentro de otro fragmento. Esto funcionaba antes, pero creo que estropeó después de actualizar google play servicios de la biblioteca. ¿Qué está mal? Fragment_map.xml:

<fragment android:name="com.google.android.gms.maps.SupportMapFragment" android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" /> 

MapFragment:

 GoogleMap map; private static View view; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (view != null) { ViewGroup parent = (ViewGroup) view.getParent(); if (parent != null) parent.removeView(view); } try { view = inflater.inflate(R.layout.fragment_map, container, false); map = ((SupportMapFragment) getActivity() .getSupportFragmentManager() .findFragmentById(R.id.map)) .getMap(); // NullPointerException at this line map.getUiSettings().setAllGesturesEnabled(true); map.getUiSettings().setMyLocationButtonEnabled(false); map.getUiSettings().setZoomControlsEnabled(true); } catch (InflateException e) { /* map is already there, just return view as it is */ } return view; } 

3 Solutions collect form web for “GetSupportFragmentManager (). FindFragmentById (R.id.map) comenzó a devolver null”

Tuve que cambiar

 getActivity().getSupportFragmentManager() 

a

 getChildFragmentManager() 

Para que funcione. No sé por qué funcionaba perfectamente hace unos días.

Esta es la respuesta:

Nota: No se puede inflar un diseño en un fragmento cuando ese diseño incluye un fragmento. Los fragmentos anidados sólo se admiten cuando se añaden dinámicamente a un fragmento.

En onCreateView, no deberías estar haciendo esto. Utilice el método sugerido en la documentación oficial para la comunicación entre fragmentos. Aquí, creo que su problema está relacionado con el tiempo. No todos los fragmentos se crean o se gestionan de forma sincrónica. Además, no estoy muy seguro si puedes llamar a getActivity () de onCreateView () – porque los fragmentos recibirán onActivityCreated () callback sólo después de onCreateView ().

  • Mostrar popup encima del marcador de mapa en MapView
  • Google Maps Android Clustering OnCameraChangeListener () despreciado
  • ¿Cuál es la forma sugerida de implementar superposiciones en v2 de la API de Google Maps para Android?
  • Almacenamiento en caché de Google Maps para uso sin conexión (api v2)
  • Integre una función "Buscar mapas" en una aplicación para Android
  • Android Studio Maps Api v2
  • El proyecto de la biblioteca de Android no se registra en Google Map
  • Renderizar elementos del clúster al hacer clic en el clúster
  • Varias ventanas de información en Android Maps API 2
  • ¿Cómo obtener el certificado de huella digital SHA-1 en Android Studio para el modo de depuración?
  • Configuración de un LongClickListener en un marcador de mapa
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.