总结前阵子同事遇到的问题Android.support.v4.app.SuperNotCalledException
1.分析
报错信息:
java.lang.RuntimeException: Unable to destroy activity {com.hy.gjh/com.hy.gjh.ui.activity.usercenter.UsercenterEditActivity}: android.support.v4.app.SuperNotCalledException: Fragment EditMyCardFragment{5280b448 #0 id=0x7f0e0134 com.hy.gjh.ui.fragment.usercenter.editdata.EditMyCardFragment} did not call through to super.onDestroy() at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3497) at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3515) ... Caused by: android.support.v4.app.SuperNotCalledException: Fragment EditMyCardFragment{5280b448 #0 id=0x7f0e0134 com.hy.gjh.ui.fragment.usercenter.editdata.EditMyCardFragment} did not call through to super.onDestroy() at android.support.v4.app.Fragment.performDestroy(Fragment.java:2204) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1196) ...
为什么会报SuperNotCalledException异常信息:
探讨:根据报错信息的提示:由于没有销毁fragment,导致activity没法销毁。扭头一看原来还真的是这样,直接贴代码 @Override public void onDestroy() { //...... } 在当前的fragment类的onDestroy方法里没有调用父类的onDestroy()方法,导致了异常的发生。正确的代码应该是: @Override public void onDestroy() { super.onDestroy(); //...... }
正常运行 …