2016-12-31 1 views
0

Ich habe eine Anwendung mit einer Aktivität und Fragmente, i zwischen Fragment am navigiert dies mitFragment-Manager führt Nullpointer

fragmentManager.beginTransaction() 
        .addToBackStack(null) 
        .replace(R.id.mainContainer, postesFragment) 
        .commitAllowingStateLoss(); 

i haben ein Fragment mit Subfragmente (unter Verwendung von viewPager), wenn ich es seine Ordnung fügen und Pop es

fragmentManager.popBackStack mit()

hier ist kein Problem, aber wenn ich ein anderes Fragment auf das Backstack abov hinzufügen e dies, und ich pop es die Anwendung abstürzt aufgrund dieser Ausnahme

java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference 
                       at android.app.BackStackRecord.setBackNameOverrides(BackStackRecord.java:1683) 
                       at android.app.BackStackRecord.remapSharedElements(BackStackRecord.java:1092) 
                       at android.app.BackStackRecord.configureTransitions(BackStackRecord.java:1299) 
                       at android.app.BackStackRecord.beginTransition(BackStackRecord.java:1011) 
                       at android.app.BackStackRecord.popFromBackStack(BackStackRecord.java:1566) 
                       at android.app.FragmentManagerImpl.popBackStackState(FragmentManager.java:1519) 
                       at android.app.FragmentManagerImpl$2.run(FragmentManager.java:495) 
                       at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467) 
                       at android.app.FragmentManagerImpl$1.run(FragmentManager.java:452) 
                       at android.os.Handler.handleCallback(Handler.java:739) 
                       at android.os.Handler.dispatchMessage(Handler.java:95) 
                       at android.os.Looper.loop(Looper.java:145) 
                       at android.app.ActivityThread.main(ActivityThread.java:6856) 
                       at java.lang.reflect.Method.invoke(Native Method) 
                       at java.lang.reflect.Method.invoke(Method.java:372) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 

ich diese Frage NullPointerException related to FragmentManager.popBackStack. How to resolve?

und das Problem nicht immer auftritt, finden, ich es auf Galaxy E5 (e53g) konfrontiert

bitte jede Hilfe ..

+0

add Code von postesFragment –

Antwort

0

Ich habe es gerade gelöst.

mit nur supportFragmentManager statt FragmentManager und support.v4.fragment statt app.fragment.

0

versuchen Sie dieses

FragmentTransaction transaction = getFragmentManager().beginTransaction(); 

transaction.addToBackStack(null); 

transaction.replace(R.id.main_container, fragment); 
transaction.commit(); 

Wenn es das gleiche Problem zeigt dann nicht verwenden

fragmentManager.popBackStack() 
+0

eigentlich ja, wenn ich die popBackStackImmidiate bin mit() keine Ausnahme throwed aber das Fragment noch aktiv, und ich habe auf „popBackstatckImmidiate“ zweimal –

+0

backpress automatisch handhaben popBackStackImmidiate() aufrufen, so benutze das nicht –

0

Geben Sie die Referenz des Fragments an, während Sie die Methode setSharedElementReturnTransition und setExitTransition aufrufen. Zum Beispiel

frg.setSharedElementReturnTransition(TransitionInflater.from(
       getActivity()).inflateTransition(R.transition.profile_image_transform)); 
    frg.setExitTransition(TransitionInflater.from(
       getActivity()).inflateTransition(R.transition.profile_image_transform));