Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


IllegalStateException – Biblioteca de soporte de fragmentos

Tengo un problema serio con mi aplicación continuamente estrellándose en algunos dispositivos de los usuarios con la excepción siguiente en un método del onStart de la actividad:

Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1299) at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1310) at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:541) at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:525) at android.support.v4.app.DialogFragment.show(DialogFragment.java:123) 

No puedo reproducir este error localmente en mi emulador. He encontrado algunas preguntas sobre este problema en stackoverflow: aquí y aquí

He probado la solución sugerida, es decir, no permiten los paquetes vacíos en onSaveInstance ni en fragmentos ni actividades.

Sin embargo, el problema persiste. Este es el único informe de Crash que recibo, y lo obtengo continuamente.

¿Alguien tiene una solución de trabajo?

  • Fragmento ya agregó IllegalStateException
  • Java.lang.IllegalStateException en Android 3.xy 4.x; Funciona bien en 2.x
  • Fatal crash: Focus search devolvió una vista que no fue capaz de tomar foco
  • Java.lang.IllegalStateException: ActionBarImpl sólo se puede utilizar con un diseño de ventana de decoración compatible
  • Android: java.lang.IllegalStateException: base de datos xxx.db (conn # 0) ya cerrado
  • Android DownloadManager ilegalstateexception no puede crear el directorio
  • Fragmento de Android y cambio de orientación que causan: IllegalStateException: No se puede realizar esta acción después de onSaveInstanceState
  • Facebook, android java.lang.IllegalStateException: No se puede ejecutar la tarea: la tarea ya se está ejecutando
  • 3 Solutions collect form web for “IllegalStateException – Biblioteca de soporte de fragmentos”

    He resuelto este problema por

    Compruebe mi respuesta aquí para el código: "No se puede realizar esta acción después de onSaveInstanceState" – ¿por qué estoy recibiendo esta excepción del método onResume de mi actividad?

    No tengo más IllegalStateException hasta ahora.

    He resuelto esto con esta solución , es decir, poner el código en una función métodos onPostResume() en la actividad

    Lea este artículo.

    Y,

    Éste.

    Una vez que el problema se entiende, seguir adelante y cambiar las cosas correctamente:

    Descubra por qué sus transacciones están ocurriendo fuera de su estado onResume. ¿Por qué suceden estas cosas cuando no deberían serlo? ¿Por qué está agregando y eliminando fragmentos manualmente con respecto al ciclo de vida de la aplicación en lugar de cuando el usuario solicita. Usted debe tal vez necesita una vez en el onCreate () o cuando el usuario invoca algo. ¿Pero por qué estás jugando con ellos en onResume () en primer lugar? No lo hagas.

    Si cambia todos los .commit() a .commitAllowStateLoss() entonces los bloqueos desaparecerán. Pero, es mejor que no lo hagas. Es mejor asegurarse de que nunca cambia sus fragmentos, excepto cuando la aplicación está completamente en vivo. A veces eso significa que nunca se carga un fragmento de OnActivityResult () sino que se marca para ejecutarse en onPostResume (), y se evita la realización de cambios de interfaz de usuario en subprocesos asincrónicos que asumen erróneamente que no se pudo haber matado la actividad mientras tanto.

    Si sólo quieres spackle todo, .commitAllowStateLoss() lo hará. Si quieres hacerlo bien, asegúrate de no tocar tus fragmentos después de que las cosas mueran.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.