android 异常 汇总

 01-13 14:26:07.104: ERROR/AndroidRuntime(16417): java.lang.RuntimeException: Canvas: trying to use a recycled bitmapandroid.graphics.Bitmap@40536868
表示调用了setImageBitmap(bitmap),但是bitmap已经被回收了,所以要先判断是否被回收isRecycled(),然后在往ImageView里面显示,注意:经过测试,回收了,不等于bitmap是null,

回收后的bitmap依然是有值的,里面存储的可能是一些元数据信息。

 

 

java.lang.IllegalStateException: get field slot from row 0 col -1 failed
异常原因:当前的程序又往数据库表里加了一个字段,而之前已经安装了旧版本的程序,所以在使用eclipse部署程序后,运行会出现上述异常。

解决方法:卸载之前部署的程序,再重新部署,重新建立数据库

 

3.parcel邮包错误

Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@4051d600: Unmarshalling unknown type code 70 at offset 424

答案 实现了Parcelable的类,往往需要重写如下2个方法

 public void writeToParcel(Parcel dest, int flags) {   

  dest.writeString(time);
  dest.writeString(nailUrl);

}

public PictureEntity createFromParcel(Parcel source){  

   entity.time = source.readString();

  }

如果createFromParcel方法中少写了一个   entity.nailUrl = source.readString();则会报如上的异常,也就是说2个方法中写入到邮包中的和从邮包中读取的数据一定要一致

=============================================

4.06-08 16:25:07.490: ERROR/AndroidRuntime(2356): java.util.concurrent.RejectedExecutionException: pool=128/128, queue=10/10

http://www.ivanzhangwb.com/archives/54

 

5.IllegalArgumentException: View not attached to window manager.

http://www.2cto.com/kf/201202/119310.html
首先是Google了下,发现引发这个的原因基本上都一致都是Dismiss对话框的时候,Activity已经不再存在。常发生这类Exception的情形都是,有一个费时的线程操作,需要在显示一个ProgressDialog,在任务开始的时候显示一个对话框,然后当任务完成了再Dismiss对话框,如果在此期间如果Activity因为某种原因被杀掉且又重新启动了,那么当Dismiss的时候WindowManager检查发现Dialog所属的Activity已经不存在了,所以会报IllegalArgumentException: View not attached to window manager.
其实此类Exception的一重要的原因是,ProgressDialog的创建显示和取消都允许在非UI线程中进程。在Android当中非UI线程是不允许操作UI相关的事情,比如添加移除View等,但是为会么允许创建显示和取消对话框呢?而且还有可能引发此Exception导致应用Crash。
要想避免此类Exception,就要正确的使用对话框,也要正确的使用线程。
正确的使用对话框
不要在非UI线程中使用对话框创建,显示和取消对话框。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值