Intent传递参数无效,提示FAILED BINDER TRANSACTION

项目场景:

在主界面选择后设备后,通过intent传递坐标参数(传递的是一个bean类,类中包含经纬度),在下一个界面调用地图api定位该设备并显示。


问题描述:

用intent添加相应的信息后,点击跳转按钮后,界面不产生跳转效果,停留在主界面,而另外一个逻辑相同的模块则正常跳转。


主界面中传递数据并跳转的代码:

Intent intent = new Intent();
intent.setClass(mContext,GaodeMapActivity.class);
intent.putExtra("beanlist", (Serializable) beanlist);
startActivity(intent);

下个界面中接收信息的代码:

beanlist=(ArrayList<LujingDuojingNameBean>)getIntent().getSerializableExtra("beanlist");

 


原因分析:

首先我先判断了跳转的代码是否有执行,确实是有执行的。然后给另外一个控件添加了点击事件和跳转代码,同样不能跳转,说明问题应该出在那4行代码上面。最终调试后问题定位在了这一行代码:

intent.putExtra("beanlist", (Serializable) beanlist);

调试中编译器报错:!!! FAILED BINDER TRANSACTION !!!

上网查询了一下后发现可能传递的参数太大的结果,intent传递的数据不能超过40kb大小。


解决方案:

我马上查看了一下这个beanlist的大小,发现有6000多行数据,应该是没做删减的结果,把不需要的bean从beanlist里面清除掉就正常跳转了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 156) 是一个错误消息,意味着在使用Intent传递数据时,数据的大小超过了系统所能处理的限制,导致传递失败。这个错误消息通常与传递集合数据相关,当数据量太大时,就会触发这个错误。 这个错误通常是由于Intent所携的数据超过了系统限制所引起的。Android系统对通过Binder机制进行数据传递的大小有一个限制,默认值是1MB。当数据超过这个限制时,就会出现FAILED BINDER TRANSACTION错误。 要解决这个错误,有几种方法可以尝试: 1. 减小传递的数据量:如果可能的话,可以考虑减小传递的数据量,例如只传递必要的数据,或者使用更小的数据结构来表示数据。 2. 使用其他方式传递数据:如果数据量太大无法通过Intent传递,可以考虑使用其他的数据传递方式,例如使用文件存储或者通过网络传输数据。 3. 使用其他的数据传递方式:如果数据量过大,可以考虑使用其他的数据传递方式,例如使用Bundle或者使用SharedPreferences存储数据。 总之,JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 156)错误表示在使用Intent传递数据时,数据的大小超过了系统所能处理的限制。需要适当减小数据量或者使用其他的数据传递方式来解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Intent传递数据跳转崩溃异常JavaBinder: !... FAILED BINDER TRANSACTION !!! (parcel size = 4202144](https://blog.csdn.net/baidu_30882221/article/details/115765221)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [JavaBinder: !!! FAILED BINDER TRANSACTION !!! intent传递大数据异常解决](https://blog.csdn.net/weixin_35959554/article/details/86011877)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Parcel-Experiment](https://download.csdn.net/download/weixin_42131705/19687233)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值