不管你信不信,即使多么熟练编程的人员在coding的时候都会出现意想不到的bug。在上篇文章中我曾提到,bug的造成是多个方面的综合结果,有些bug是可以修复的,但是有些逻辑上的bug要修复可不是那么容易的事情,就像我们做错了一件事情,如果不去从根本上改正就会犯更大的错误一样,有时候bug也是一个积累的过程。
在经历了android上的开发之后,我改变了我最初的想法,让我认识到了即使再简单的开发平台,开发一款产品都需要一个严密的逻辑认证,认证之后再进行开发,不仅能提高代码的生产效率,还能减少很多产品的bug。
下面是我遇到的一些基本简单的bug,但是修复却花费了一段时间:
(1)android.view.WindowManager$BadTokenException: Unable to add window --
token android.os.BinderProxy@342917f8 is not valid; is your activity
running?
是由于有activity时依附于另一个activity的,当被依附的activity产生错误的时候,该activity没有了靠山而产生错误。对于这个错误
还没有根本的解决办法,唯一的办法就是改变该activity依附于另一activity的事实,将其放入另一activity。
(2)01-13 17:21:04.408: WARN/System.err(20476): java.net.SocketException: The connection was reset
原因是由于没有关闭socket链接造成的。
(3)java.net.SocketTimeoutException: The operation timed out
该问题是由于没有捕获链接超时的异常导致的错误。需要在代码后面
catch(SocketTimeoutException e){
sendMessage(FILE_DOWNLOAD_ERROR, e);
}
(4)android.view.WindowLeaked: Activity com.*.* has leaked window