报错异常

原创 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();
}


delete 总出异常

相关 url http://community.csdn.net/Expert/topic/3160/3160520.xml?temp=.199032测试工程说明class CNewFree :  p...
  • newkey007
  • newkey007
  • 2004年07月09日 20:47
  • 2355

(异常)Android开发,Dialog dialog=new AlertDialog.Builder(this)出错。

我最近也遇到了这样的错误
  • u010416101
  • u010416101
  • 2014年11月20日 09:34
  • 1357

【JDBC】加载驱动异常

用JDBC连接数据库报错:java.lang.NoClassDefFoundError: Could not initialize class cn.lsh.jdbc.utils.JdbcUtils ...
  • u010143291
  • u010143291
  • 2016年07月23日 23:13
  • 770

java 错误抛出顺序

/** * Created with IntelliJ IDEA. * User: 周海明 * Date: 2016/12/30 * Time: 14:14 */ public class ...
  • u013160017
  • u013160017
  • 2017年01月04日 10:36
  • 349

解决Integer.parseInt(String str)的异常(NumberFormatException)方法

解决Integer.parseInt(String str)的异常(NumberFormatException)方法
  • timchen525
  • timchen525
  • 2017年07月13日 00:47
  • 745

Timer异常后导致任务终止的解决方法

给客户做的系统里有几个Timer在定时执行 但是客户反应 某些数据没成功,于是看日志发现是由于Timer报错了,任务就终止了。 然后需要改成在Timer报错的时候还要继续执行任务,于是 c...
  • hexin373
  • hexin373
  • 2013年01月09日 17:46
  • 4841

ArrayList删除元素(remove())报错的原理与解决办法

作为Java大家庭中的集合类框架,List应该是平时开发中最常用的,可能有这种需求,当集合中的某些元素符合一定条件时,想要删除这个元素。如: [java] view plaincop...
  • mingliangniwo
  • mingliangniwo
  • 2015年10月21日 11:25
  • 6507

异常处理与常见的异常类型

在python中,try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错误(python作为脚本语言 没有编译的环节,在执行过程中对语法进行检测,出错后发出异常消息)、数...
  • ls12300
  • ls12300
  • 2018年01月02日 21:55
  • 26

Method.invoke 异常捕获

http://bbs.csdn.net/topics/80291698 try{   Method.invoke(BO,VO); }catch(InvocationTargetException...
  • caolaosanahnu
  • caolaosanahnu
  • 2014年03月07日 12:21
  • 1633

调用webservice异常总结

发布和调用Webservice很简单,但小问题依然不断,特总结如下: 一、Java调用.net的webService产生“服务器未能识别 HTTP 标头 SOAPAction 的值”错误。 解决...
  • shan9liang
  • shan9liang
  • 2015年03月29日 21:51
  • 5531
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:报错异常
举报原因:
原因补充:

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