Utilizo la biblioteca de soporte de Android para usar fragmentos en aplicaciones pre Honeycomb.¿Por qué recibo IllegalStateExceptions cada vez que inicio una actividad que usa fragmentos de soporte?
Si agrego un fragmento dentro del método onCreate de mi actividad, la actividad falla con una IllegalStateException.
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): FATAL EXCEPTION: main
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): java.lang.RuntimeException: Unable to start activity ComponentInfo{net..../net.....homescreen...Main}: java.lang.IllegalStateException: Activity has been destroyed
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): at android.os.Handler.dispatchMessage(Handler.java:99)
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): at android.os.Looper.loop(Looper.java:123)
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): at android.app.ActivityThread.main(ActivityThread.java:3691)
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): at java.lang.reflect.Method.invokeNative(Native Method)
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): at java.lang.reflect.Method.invoke(Method.java:507)
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): at dalvik.system.NativeStart.main(Native Method)
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): Caused by: java.lang.IllegalStateException: Activity has been destroyed
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1257)
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:535)
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:519)
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): at net.....AbstractActivity.onCreate(AbstractActivity.java:103)
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): at net.....homescreen...Main.onCreate(..Main.java:51)
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
08-04 10:19:49.100: ERROR/AndroidRuntime(18501): ... 11 more
El onCreate de la AbstractActivity se parece a esto:
protected void onCreate(Bundle savedInstanceState) {
if (menuEnabled) {
FragmentManager fragmentManager = getCompatibleFragmentManager();
FragmentTransaction transaction = fragmentManager
.beginTransaction();
transaction.add(new OptionsMenuFragment(), OPTIONS_MENU_IDENTIFIER);
transaction.commit();
}
super.onCreate(savedInstanceState);
}
Si puedo depurar la llamada veo que el fragmentmanager lanza esta excepción porque la actividad es nula. Parece que fragmentmanager no se inicializa en absoluto.
¿Qué estoy haciendo mal?
Agradable, gracias. – nobre
También obtengo IllegalStateException usando Fragmentos de la biblioteca de compatibilidad ... pero no está relacionado con esto, mis llamadas a super ya están al principio de onCreate (también en las superclases) – Ixx
Bien, acabo de volver con el mismo problema y estaba confundido que no pude renunciar ... Parece que no soy un aprendiz rápido. – Janusz