2

Je suis confronté au problème suivant.NullPointerException: android.support.v4.app.FragmentHostCallback.getHandler() sur une référence d'objet null

Scénario:

Pour la première fois quand j'inscription à travers l'application, je suis en mesure de voir les onglets et il y a du contenu, mais quand je LOGOUT et essaie de se connecter pour le même code pour viewpager i get suivantes exception:

NullPointerException: tentative d'invoquer la méthode virtuelle 'android.os.Handler android.support.v4.app.FragmentHostCallback.getHandler()' sur une référence d'objet null

mais lorsque le menu de navigation est ouvert et que je sélectionne ensuite les données et les onglets affichés, viewpager affiche les onglets.

Contenu: J'ai 2 onglets

Ci-dessous mon code:

public void setupDashboardTabs(List<CreateFragmentsPojo> fragments) { 
    this.fragments = fragments; 

    viewPager = (ViewPager) findViewById(R.id.viewpager); 
    viewPager.setOffscreenPageLimit(3); 

    setupDashboardViewPager(fragments); 

    tabLayout = (TabLayout) findViewById(R.id.tabs); 
    tabLayout.setupWithViewPager(viewPager); 

    setUpFontStyleForTabs(); 
} 


public void setupDashboardViewPager(List<CreateFragmentsPojo> fragments) { 
    try { 
     ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 

     for (int i = 0; i < fragments.size(); i++) { 
      adapter.addFragment(fragments.get(i).getFragment(), fragments.get(i).getTitle()); 
     } 
     viewPager.setAdapter(adapter); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

viewPager.setAdapter (adaptateur); obtenir Execption NullPointer à cette ligne

code pour déconnecter:

Intent intent = new Intent(this, LoginActivity.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 
    finish(); 

Stacktrace:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Handler android.support.v4.app.FragmentHostCallback.getHandler()' on a null object reference 
W/System.err:  at android.support.v4.app.FragmentManagerImpl.ensureExecReady(FragmentManager.java:1949) 
W/System.err:  at android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:1965) 
W/System.err:  at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:620) 
W/System.err:  at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:166) 
W/System.err:  at android.support.v4.view.ViewPager.setAdapter(ViewPager.java:513) 
W/System.err:  at io.skreem.dashboard.DashboardActivity.setupDashboardViewPager(DashboardActivity.java:459) 
W/System.err:  at io.skreem.dashboard.DashboardActivity.setupDashboardTabs(DashboardActivity.java:443) 
W/System.err:  at io.skreem.dashboard.DashboardActivity$4.onResponse(DashboardActivity.java:408) 
W/System.err:  at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68) 
W/System.err:  at android.os.Handler.handleCallback(Handler.java:746) 
W/System.err:  at android.os.Handler.dispatchMessage(Handler.java:95) 
W/System.err:  at android.os.Looper.loop(Looper.java:148) 
W/System.err:  at android.app.ActivityThread.main(ActivityThread.java:5443) 
W/System.err:  at java.lang.reflect.Method.invoke(Native Method) 
W/System.err:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
W/System.err:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
+0

Copie possible de [Qu'est-ce qu'une exception NullPointerException, et comment la réparer?] (Http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix -it) –

+0

n'a pas été utile – MobDev

+0

tout succès avec la résolution de cette erreur? Je suis confronté parfois au même problème –

Répondre

0

viewPager.setOffscreenPageLimit (3);

est le problème. Comme vous avez 2 onglets. Ce qui signifie 2 pages mais vous forcer 3 en tant que PageLimit. Aussi quel est le besoin d'ajouter un fragment à l'adaptateur?

+0

hey, Adaptateur est utilisé pour afficher des fragments. setOffscreenPageLimit (3) pour les autres onglets, cela ne devrait pas poser de problème car cela fonctionne avec d'autres – MobDev

0

J'ai eu le même problème et il a été causé par la réutilisation de ViewPager instance par différentes instances du fragment. Il y avait une exception après ViewPager.setAdapter() a été appelée pour la deuxième fois. Si tel est le problème que vous rencontrez, vous pouvez essayer une solution que j'ai utilisée. Pour résoudre le problème, j'ai dû retirer l'adaptateur dans la méthode onDestroyView() de mon fragment.

Projet illustrant le problème et la solution can be found here.