Получение фатального исключения при использовании FragmentStatePagerAdapter

В моем приложении в Activity есть три вкладки с эффектами пейджера. Я использую FragmentStatePagerAdapter и получаю исключение, когда приложение открывается в фоновом режиме через 15 минут после того, как приложение было переведено в фоновый режим.

трассировка стека

FATAL EXCEPTION: main
Process: com.myapp, PID: 21506
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.willage/com.myapp.DashboardActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.support.v4.app.Fragment android.support.v4.app.FragmentManager.getFragment(android.os.Bundle, java.lang.String)' on a null object reference
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
   at android.app.ActivityThread.-wrap11(ActivityThread.java)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:148)
   at android.app.ActivityThread.main(ActivityThread.java:5417)
   at java.lang.reflect.Method.invoke(Native Method)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.support.v4.app.Fragment android.support.v4.app.FragmentManager.getFragment(android.os.Bundle, java.lang.String)' on a null object reference
   at android.support.v4.app.FragmentStatePagerAdapter.restoreState(FragmentStatePagerAdapter.java:212)
   at android.support.v4.view.ViewPager.onRestoreInstanceState(ViewPager.java:1390)
   at android.view.View.dispatchRestoreInstanceState(View.java:14746)
   at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3121)
   at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:3127)
   at android.view.View.restoreHierarchyState(View.java:14724)
   at android.support.v4.app.Fragment.restoreViewState(Fragment.java:465)
   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1094)
   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
   at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1234)
   at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:2046)
   at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:174)
   at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:598)
   at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1237)
   at android.app.Activity.performStart(Activity.java:6253)
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
   at android.app.ActivityThread.-wrap11(ActivityThread.java) 
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
   at android.os.Handler.dispatchMessage(Handler.java:102) 
   at android.os.Looper.loop(Looper.java:148) 
   at android.app.ActivityThread.main(ActivityThread.java:5417) 
   at java.lang.reflect.Method.invoke(Native Method) 
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

Адаптер пейджера

 class ViewPagerAdapter extends FragmentStatePagerAdapter {
    private final List<Fragment> mFragmentList = new ArrayList<>();
    private final List<String> mFragmentTitleList = new ArrayList<>();

    public ViewPagerAdapter(FragmentManager manager) {
        super(manager);
    }

    @Override
    public Fragment getItem(int position) {
        return mFragmentList.get(position);
    }

    @Override
    public int getCount() {
        return null==mFragmentList?0:mFragmentList.size();
    }

    public void addFragment(Fragment fragment, String title) {
        mFragmentList.add(fragment);
        mFragmentTitleList.add(title);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return mFragmentTitleList.get(position);
    }
}

person Community    schedule 14.10.2016    source источник
comment
Похоже, внутри вашего Activity произошла утечка памяти. Включение исходного кода вашего Activity может помочь идентифицировать его.   -  person 2hamed    schedule 14.10.2016
comment
Это может быть дубликат stackoverflow.com/questions/18642890 / - не могли бы вы проверить, решает ли это для вас? - stackoverflow.com/a/19099987/503508   -  person Knossos    schedule 14.10.2016