Android异常:android.os.TransactionTooLargeException
来源:互联网 发布:软件配置管理人员职责 编辑:程序博客网 时间:2024/04/30 13:52
最近在做项目的时候遇到个异常,经过反复调试,终于得知原因了
首先来看看出现异常的原因:
因为服务器开发限制,返回给我的图片资源都是使用base64编码后的String字符串,而产品要求将所有的图片能够支持Android图片库的浏览方式,于是想都没想,直接将返回的List<String>直接用
intent.putStringArrayListExtra("imgList",imageList);
包装传递到显示图片库浏览方式的activity中,只有1-2张图片是可以直接传递过去,并且能够显示成功,但是图片多的话,启动activity的时候就直接闪退了,并且出现了如下异常log:
04-28 09:53:53.471 825-1693/? E/ActivityManager: Second failure launching *.*.*Activity, giving up android.os.TransactionTooLargeException at android.os.BinderProxy.transactNative(Native Method) at android.os.BinderProxy.transact(Binder.java:508) at android.app.ApplicationThreadProxy.scheduleLaunchActivity(ApplicationThreadNative.java:916) at com.android.server.am.ActivityStackSupervisor.realStartActivityLocked(ActivityStackSupervisor.java:1345) at com.android.server.am.ActivityStackSupervisor.attachApplicationLocked(ActivityStackSupervisor.java:623) at com.android.server.am.ActivityManagerService.attachApplicationLocked(ActivityManagerService.java:7326) at com.android.server.am.ActivityManagerService.attachApplication(ActivityManagerService.java:7399) at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:498) at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2815) at android.os.Binder.execTransact(Binder.java:455)04-28 09:53:53.506 825-1693/? E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!04-28 09:53:53.511 825-944/? E/InputDispatcher: channel '2b24ad5d *.*.*Details (server)' ~ Channel is unrecoverably broken and will be disposed!04-28 09:53:53.513 333-928/? E/AudioFlinger: getNextBuffer, get null buffer
打了断点调试,才发现在启动Activity的时候出现异常了,如果把imageList中放入较少数据是可以成功,经过分析发现是由于bundle不能传递大容量的数据信息,所以说尽量不要使用intent传递大数据,如果两个页面之间要传递的数据较大,可以想想其他办法,比如直接简单粗暴的方法就是把要传递的数据声明为静态(static)的或者封装在一个静态类中,这种方式虽然效率比较高,但是会破坏程序的独立性(当然程序员的想法都各式各样的,具体看自己的编码思想和风格,这只是个建议),如果有想要了解两个Activity之间使用intent传值,可以参考这篇文章《多个Activity之间传值,使用Intent》
0 0
- android.os.TransactionTooLargeException异常
- android.os.TransactionTooLargeException异常
- android.os.TransactionTooLargeException异常
- Android异常:android.os.TransactionTooLargeException
- android.os.TransactionTooLargeException
- android.os.TransactionTooLargeException
- android.os.TransactionTooLargeException
- Caused by: android.os.TransactionTooLargeException
- Caused by: android.os.TransactionTooLargeException总结
- 蓝牙压力测试报抛android.os.TransactionTooLargeException异常分析总结
- 【Android】Intent传递数据量过大的问题android.os.TransactionTooLargeException
- Android 数据传递出现的android.os.TransactionTooLargeException问题
- android.os.TransactionTooLargeException: data parcel size 962920 bytes
- ViewPager+Fragment出现android.os.TransactionTooLargeException的坑!!!
- android aidl 进程间通信需要注意msg的大小(android.os.TransactionTooLargeException)
- Android调用系统裁减图片,出现android.os.TransactionTooLargeException: data parcel size 642356 bytes
- java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 520536 bytes
- android.os.deadObjectException异常
- 一句话说明canvas 中的save()和restore()的用途
- js判断手指滑动方向(移动端)
- localtime与localtime_r
- Elasticsearch.Net Nest 5.0.0 用法
- Spring序列化与反序列化
- Android异常:android.os.TransactionTooLargeException
- 题目1481:Is It A Tree?
- Java 大数BigDecimal常用处理
- Linux中rc的含义
- 常用三方总结
- python csv 读取两种方法
- 坐标系之间的旋转平移变换与对应变换矩阵的关系
- uva6692
- 【LEET-CODE】33. Search in Rotated Sorted Array【Medium】