標籤:android開發 debug
fragment 加 viewpager做tab的時候容易出這個null 指標異常,看源碼:
if (f.mSavedViewState != null) { if (result == null) { result = new Bundle(); } result.putSparseParcelableArray( FragmentManagerImpl.VIEW_STATE_TAG, f.mSavedViewState);}if (!f.mUserVisibleHint) { if (result == null) { result = new Bundle(); } // Only add this if it's not the default value result.putBoolean(FragmentManagerImpl.USER_VISIBLE_HINT_TAG, f.mUserVisibleHint);}
不儲存狀態會進入第二個if拋null 指標異常。
在fragment中加入如下代碼,bug可解:
@Override public void onSaveInstanceState(Bundle outState) {//first saving my state, so the bundle wont be empty.outState.putString("KEY", "WBUG_VALUE");super.onSaveInstanceState(outState);}
或者:
class MyFragment extends Fragment { @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); setUserVisibleHint(true); }或者使用FragmentStatePagerAdapter替代 FragmentPageAdapter。
NullPointerException android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState