本文首发我的博客,github 地址 大家好,我是徐公,今天为大家带来的是 RxJava 的一个血案,一行代码 return null 引发的. 前阵子,组内的同事反馈说 RxJava 在 debug 包 crash 了,捕获到的异常信息不全.(即我们捕获到的堆栈没有包含我们自己代码,都是一些系统或者 RxJava 框架的代码) 典型的一些 error 信息如下: 可以看到,上面的 Error 堆栈信息中,它并没有给出这个 Error 在实际项目中的调用路径.可以看到,报错的堆栈,提供的有效信息…
在开发中,我们在启动app的时候,屏幕会出现一段时间的白屏或者黑屏,不同设备时间长短不同.很影响用户体验. 首先分析一下,产生这个现象的原因,当我们在启动一个应用时,系统会去检查是否已经存在这样一个进程,如果不存在,就是冷启动.系统和APP本身都有很多工作需要处理.首先系统的服务会先检查startActivity中的intent的信息,然后在去创建进程,最后才是执行启动Acitivy的操作.而我们上面提到的显示白黑屏的问题,就是在这段时间内产生的. 系统在绘制页面加载布局之前,首先会初始化窗口(…
有时候我们需要将系统出现异常的堆栈信息显示到异常页面的一个隐藏的DIV内,这样查看源时就可以快速的定位到异常信息.这个时候就要将异常信息转成String. /* * 将异常的堆栈信息转成String */ public static String getExceptionStack(Throwable throwable) { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); throwable…
目录 Android编译异常Cause: duplicate entry: META-INF/MANIFEST.MF 解决方案2: 治标又治本(暂无) 解决方案1: 治标不治本(还原大法) 参考资料 问题详情 Android编译异常Cause: duplicate entry: META-INF/MANIFEST.MF 解决方案2: 治标又治本(暂无) 解决方案1: 治标不治本(还原大法) 还原到classpath 'com.android.tools.build:gradle:3.4.2' 即…
IE8 下 select option 内容过长 , 展开时信息显示不全 , 简单折衷的方式就是给 option 加上 title 属性 , 但是又不想一个个的修改,怎么办呢,代码如下 : //select option bind title $(document).delegate('select', 'mouseover', function() { var $this = $(this); if($this.data('data-bind-title')) { return; } $thi…
http://blog.csdn.net/freshui/article/details/9456889 打印堆栈是调试的常用方法,一般在系统异常时,我们可以将异常情况下的堆栈打印出来,这样十分方便错误查找.实际上还有另外一个非常有用的功能:分析代码的行为.android代码太过庞大复杂了,完全的静态分析经常是无从下手,因此通过打印堆栈的动态分析也十分必要. Android打印堆栈的方法,简单归类一下 1. zygote的堆栈dump 实际上这个可以同时dump java线程及native线程的…
这篇文章是根据Jake Wharton在GOTO CopenHagen 2016上的讲话整理的. 下一个版本(2.0)的RxJava还在开发中.虽然observable.订阅管理和背压(backpressure)都完全重写了,但是operator基本没有任何的变化.在本文中你将学到如何让你的库和应用迁移到RxJava 2上,以及如何处理RxJava的两个版本. 为什么要用响应式编程 为什么响应式编程突然间流行起来.除非你可以一开始就把app定义为同步的模式,否则的话只要有一个异步的处理就会把你习…
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 异常 Exception 堆栈跟踪 简介 MD 目录 目录异常简介官方文档ThrowableErrorExceptionRuntimeException异常捕获APIUncaughtExceptionHandler 类JAVA 测试案例Android 中的一个实用案例finally语句的执…
前言 自从.NET出现后,关于CLR异常机制的讨论就几乎从未停止过.迄今为止,CLR异常机制让人关注最多的一点就是“效率”问题.其实,这里存在认识上的误区,因为正常控制流程下的代码运行并不会出现问题,只有引发异常时才会带来效率问题.基于这一点,很多开发者已经达成共识:不应将异常机制用于正常控制流中.达成的另一个共识是:CLR异常机制带来的“效率”问题不足以“抵消”它带来的巨大收益.CLR异常机制至少有一下几个优点: 1.正常控制流会倍立即中止,无效值或状态不会在系统中继续传播. 2.提供了统一处…
转自:http://blog.csdn.net/sxsboat/article/details/7340759 留个人备用0.0 Android中在onCreate()时弹出popwindow,很多人都有过类似的需求吧,但是直接在onCreate()中调用popwindow的showAtLocation()方法是会报异常的,原因是此时activity还没有初始化完毕,网上也有一些解决方法,但一般都是通过延时一小段时间再弹出实现的,代码不够健壮.其实可以通过不断的检测当前activity的状态,一…