android 如何分析java.lang.IllegalArgumentException: Cannot draw recycled bitmaps异常
这类问题的分析,通常你需要找到bitmap对象已经在那个位置recyle,然后检查代码。
如何定位的位置,其中代码具有对bitmap 目的recyle。能够 Bitmap.java的recycle方法,加log打印call stack要找到。
详细的改动參考例如以下:
public void recycle() {
if (!mRecycled) {
if (nativeRecycle(mNativeBitmap)) {
// return value indicates whether native pixel object was actually recycled.
// false indicates that it is still in use at the native level and these
// objects should not be collected now. They will be collected later when the
// Bitmap itself is collected.
mBuffer = null;
mNinePatchChunk = null;
}
mRecycled = true;
log.e("bitmap recyle! ", "this = " + this ,new Throwable("recycle"));
}
}
然后在抛 java.lang.IllegalArgumentException: Cannot draw recycled bitmaps 异常的地方,也将bitmap 对象打印出来。 抓取复现问题的mobile log 分析。
比如例如以下的log:
在main log中搜索“FATAL EXCEPTION”看到发生fatal error exception的 trace例如以下。相应的bitmap对象为 android.graphics.Bitmap@4218d0c8
01-01 08:03:23.841 2369 2369 D AndroidRuntime: Shutting down VM
01-01 08:03:23.841 2369 2369 W dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x40f979a8)
01-01 08:03:23.856 2369 2369 E AndroidRuntime: FATAL EXCEPTION: main
01-01 08:03:23.856 2369 2369 E AndroidRuntime: java.lang.IllegalArgumentException: Cannot draw recycled bitmapsandroid.graphics.Bitmap@4218d0c8
然后再在main log中搜索keyword “@4218d0c8” ,就能够看到该对象被recyle的call stack
01-01 08:03:22.741 2369 2369 E bitmap recyle! : this = android.graphics.Bitmap@4218d0c8
01-01 08:03:22.741 2369 2369 E bitmap recyle! : java.lang.Throwable: recycle
01-01 08:03:22.741 2369 2369 E bitmap recyle! : at android.graphics.Bitmap.recycle(Bitmap.java:214)
01-01 08:03:22.741 2369 2369 E bitmap recyle! : at com.xxx.xxxx.xxxActivity.onDestroy(xxxActivity.java:190)
01-01 08:03:22.741 2369 2369 E bitmap recyle! : at android.app.Fragment.performDestroy(Fragment.java:1908)
......
android 如何分析java.lang.IllegalArgumentException: Cannot draw recycled bitmaps异常的更多相关文章
- Android IllegalArgumentException: Cannot draw recycled bitmaps解决方法
在编码图集过程中,出现了Android IllegalArgumentException: Cannot draw recycled bitmaps错误. 大致意思是:不能使用已经被回收的bitmap ...
- [Android]Caused by: java.lang.IllegalArgumentException: Service not registered.md
Caused by: java.lang.IllegalArgumentException: Service not registered: org.diql.aidldemo.MainActivit ...
- [zhuan]Android 异常处理:java.lang.IllegalArgumentException(...contains a path separator)
http://blog.csdn.net/alex_zhuang/article/details/7340901 对以下错误: Java.lang.RuntimeException: java.lan ...
- 登录首页时报错:java.lang.IllegalArgumentException (不合法的参数异常)
处理一个老项目,DOWN下项目并配好之后,启动没问题,但是登陆之后首页显示如下: 控制台报错如下: 严重: Servlet.service() for servlet jsp threw except ...
- Android Caused by: java.lang.IllegalArgumentException: column '_id' does not exist
出错原因:在查询整个sqlite数据库时,没有查询到 "_id" 这一列. 原来的代码是:mSQLiteDatabase.query(table_name, new String[ ...
- 关于dialog引起的 java.lang.IllegalArgumentException: View=com.android.internal.policy.impl.PhoneWindow$DecorView not attached to window manager 错误的分析
在跑Monkey测试的时候出现了一个比较特别的问题,先来看看Log: // CRASH: com.meizu.media.painter (pid 12491) // Short Msg: java. ...
- 关于java.lang.IllegalArgumentException: View not attached to window manager 错误的分析
今天遇到一个很奇特的问题,当用户设置了PIN码,在锁屏界面正常解锁PIN码后,进入Launcher时显示com.android.phone 已停止运行.一开始猜想会不会是解锁PIN码的时候处理导致了P ...
- [Android] View.setTag(key,Object) (java.lang.IllegalArgumentException: The key must be an application-specific resource id.)
转自: http://blog.csdn.net/brokge/article/details/8536906 setTag是android的view类中很有用的一个方法,可以用它来给空间附加一些信息 ...
- java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@450b2f48 异常处理
晕死的错误,改了半天也没想到是这样的原因,基础正要呀... 先看一下警告信息: 07-07 08:32:19.540: WARN/WindowManager(74): Failed looking u ...
随机推荐
- 正則表達式验证邮箱,qq,座机,手机,网址
手机: var reg=/^1[34578]\d{9}$/; if(reg.test("你输入的手机号码") ) { alert("手机号码输入正确") } e ...
- Python之常用模块(待更新)
模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...
- Windows调试工具入门—1
NetRoc http://www.DbgTech.net 引子 Debugging Tools for Windows是微软发布的一套用于软件调试的工具包(后面如果没有指明,那么我会使用WinDbg ...
- extjs表单
Ext.onReady(function(){ Ext.BLANK_IMAGE_URL = '../ext/resources/images/default/s.gif'; Ext.QuickTi ...
- [Android学习笔记]jackson库的使用
Jackson库一般用于序列化和反序列化操作,通常会涉及到的操作是: 1. Java Object -> Json String 2. Java Object -> Xml String ...
- 【PostgreSQL】PostgreSQL语法
在阅读的过程中有不论什么问题.欢迎一起交流 邮箱:1494713801@qq.com QQ:1494713801 一.PostgreSQL时间类型转换 --时间类型转成字符类型 select t ...
- 更改Oracle实例的字符集
(1).数据库服务器字符集select * from nls_database_parameters 来源于props$,是表示数据库的字符集. (2).服务端字符集环境select * from n ...
- android
在特殊应用的特殊功能,以帮助通信系统的问题
在实际工程中的应用,进入一个特殊的应用后,系统的某个功能不能起作用. 当然,这个通信有非常多办法能够做到.笔者能够想到的至少有例如以下几种 1.利用property熟悉来实现,这种话须要添加一个特殊的 ...
- NYOJ 284 坦克大战 【BFS】+【优先队列】
坦克大战 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描写叙述 Many of us had played the game "Battle city" ...
- class 添加样式,删,开关 【选择】addClass,removeClass,toggleClass
<1> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>< ...