1

J'utilise le niveau 16 de l'API, j'essaie de remplacer un fragment au-dessous d'un onglet où déjà est un fragment. Je ne peux pas vraiment trouver une raison pour laquelle, mais parfois je reçois une exception comme ceci:NullpointerException sur Backstack

E/AndroidRuntime(27395): java.lang.NullPointerException 
E/AndroidRuntime(27395): at android.app.BackStackRecord.run(BackStackRecord.java:604) 
E/AndroidRuntime(27395): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1399) 
E/AndroidRuntime(27395): at android.app.FragmentManagerImpl$1.run(FragmentManager.java:426) 
E/AndroidRuntime(27395): at android.os.Handler.handleCallback(Handler.java:615) 
E/AndroidRuntime(27395): at android.os.Handler.dispatchMessage(Handler.java:92) 
E/AndroidRuntime(27395): at android.os.Looper.loop(Looper.java:137) 
E/AndroidRuntime(27395): at android.app.ActivityThread.main(ActivityThread.java:4921) 
E/AndroidRuntime(27395): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(27395): at java.lang.reflect.Method.invoke(Method.java:511) 
E/AndroidRuntime(27395): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) 
E/AndroidRuntime(27395): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 
E/AndroidRuntime(27395): at dalvik.system.NativeStart.main(Native Method) 

Je ne pas ajouter un null Fragment et le code en cours d'exécution, il est simple:

  final Fragment newFragment = Fragment.instantiate(anContext, clazz.getName(), arguments); 
      final FragmentTransaction transaction = manager.beginTransaction(); 
      transaction.disallowAddToBackStack(); 
      transaction.replace(R.id.fragment_content_center, newFragment); 
      transaction.commit(); 

Si vous le souhaitez, ont un regard sur Grepcode, car il y a l'Exception qui se passe: http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.1.2_r1/android/app/BackStackRecord.java#604

Je n'utilise aucune animation ici.

+0

Reprise de la question? Reportez-vous [ce fil] (http://stackoverflow.com/questions/13393693/android-fragmentmanager-backstackrecord-run-throwing-nullpointerexception) – PCoder

+0

J'ai vérifié les échecs possibles comme remplacer (id, null) et il n'a pas été le cas. – Kitesurfer

Répondre

0

Le problème était quelque chose de différent,

j'utilisais dans chaque transaction un Fragment TAG lorsque vous faites l'appel remplacer. Sur le code supérieur je n'ai pas. Cela provoquait cette exception NullPointerException. On dirait que vous ne pouvez pas mélanger les transactions, la documentation n'est pas claire à ce sujet.

Thanx, Kitesurfeur