2016-07-27 11 views
2

上)NullPointerExceptionがpopBackstackImmediateを呼び出す()私は私のコードでこのサイム・ラインを持っている:getHandler(FragmentManager

getChildFragmentManager().popBackstackImmediate(); 

それは時々動作しますが、頻繁にクラッシュします。スタックトレースは次のとおりです。

java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Handler android.support.v4.app.FragmentHostCallback.getHandler()' on a null object reference 
      at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1646) 
      at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:585) 
      at android.support.v4.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:600) 
      at marg.uk.fourthoffice.fragments.BCMasterDetailFragment.popBackStack(MyMasterDetailFragment.java:140) 
      at marg.uk.fourthoffice.activities.BCOfficeActivity.onBackPressed(MainActivity.java:173) 
      at marg.uk.fourthoffice.fragments.BCSwipeableCardsFragment$1.onClick(MyOtherFragment.java:189) 

問題が発生する可能性がありますか?

+1

あなたは[これ](https://code.google.com/p/android/issues/detail?id=183920) – Blackbelt

+0

を読んだことがありましたが、そこには解決策がないようです。私はここで誰かが解決策を見つけたと思っていた。 – Guy

答えて

0

私のコードに誤りがありました。

Activity-Fragmentアーキテクチャで問題が発生したため、例を表示できませんが、主な問題はgetChildFragmentManagerが実際には空であり、間違ったフラグメントから呼び出されたことでした。

これは、同時に4つ以上のフラグメントが存在するタブレット(デュアルペインレイアウト)で発生していました。これは間違った部分で呼び出されていました。

同様の問題が発生している場合、メモリ内に同じフラグメントのインスタンスが複数存在する可能性があります。このメソッドが正しいインスタンスから呼び出されていることを確認してください。

+0

私にとっては、それは間違ったスーパーメソッド呼び出しのために起こった。オーバーライドされたonStop()メソッドは、何とか 'super.onDestroy()'を呼び出し、それを 'super.onStop()'に変更していました。 – Ashok

関連する問題