报错异常

原创 2015年07月09日 15:32:26
java.lang.IllegalStateException: No activity

出现场景

第一次启动程序可以正常运行,随便切换tab也不会有问题,第二次必崩

引起BUG的原因是
当fragment移动到分离状态的时候,会重置内部状态,但是并没有重置子fragment管理器(这是类库当前版本的错误),这会让fragment复位之后使他不连接导致一个exception
解决办法是
添加 下面的代码对于每一个fragment 在onDetach()方法里

    public void onDetach() {  
        super.onDetach();  
        try {  
            Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager");  
            childFragmentManager.setAccessible(true);  
            childFragmentManager.set(thisnull);  
        } catch (NoSuchFieldException e) {  
            throw new RuntimeException(e);  
        } catch (IllegalAccessException e) {  
            throw new RuntimeException(e);  
        }  
    } 
上面是错的存在几个问题  开个玩笑
一个是mChildFragmentManager可能为空 那么在childFragmentManager.setAccessible的时候就会开始抛出空指针
二则是捕捉异常之后直接抛出了RuntimeException导致程序挂掉了 这样等于没有处理
下面这个则处理了这两个问题
try {
    Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager");
    if (childFragmentManager != null) {
        childFragmentManager.setAccessible(true);
        childFragmentManager.set(this, null);
    }
} catch (Exception e) {
    e.printStackTrace();
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

oc 异常报错

现象:两个类的头文件相互引用报错,造成循环引用 报错:Expected a type 解决:使用“向前申明”解决// // EOCPerson.h // iOS // // Created ...

mahout关于决策树应用报错异常处理

Exception in thread "main" java.lang.IllegalArgumentException: Wrong number of attributes in the str...

Android Studio Subversion 版本异常报错

问题描述: 1、 使用SmartSVN下载project,SmartSVN使用的subversion版本为1.9.4. 2、使用Android Studio打开project,提示错误: Err...

Android PinnedSectionListView异常崩溃报错

Android PinnedSectionListView异常崩溃报错:java.lang.ClassCastException: android.view.ViewGroup$LayoutParam...

Yii2.0 探究七 异常报错提示:yii\validators

一、写在前面:         在使用yii2.0的过程中,在编写代码时候难免出现错误,或者说是异常;        有时候我们可以看出来,例如:table_name 不存在;这在我们编写form...

Android.SuperNotCalledException报错异常信息的解决方案

总结前阵子同事遇到的问题Android.support.v4.app.SuperNotCalledException1.分析 报错信息:java.lang.RuntimeException: Unab...

解决cocos2d-x 安卓锁屏再解锁,OPenGL报错;后台转前台异常问题解决办法

最近几天解决游戏中安卓遇到一个让人蛋碎的问题,先具体描述一下问题: 游戏在安卓手机上运行正常,按HOME键转后台以后 ,再点桌面图标游戏无法正常运行,显示黑框;无法正常从后台转到前台;锁屏以后再解锁...

解决cocos2d-x 安卓锁屏再解锁,OPenGL报错;后台转前台异常问题解决办法 (续)

接上一篇内容,经打包测试以后,发现虽然从点击图面图标切入游戏是正常的,但是锁屏以后问题仍然存在,要疯了,这是怎么回事?那好,那我想办法不让游戏自动锁屏。这里网上也有很多方法,推荐一篇文章大家看一下:h...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)