关于使用alibaba的ARouter 序列化bean,传递数据失败的问题 解决

在项目中使用 ARouter 遇到了无法序列化bean传递数据的bug。尝试了更新序列化方式、使用@Autowired和withObject等方式都未解决问题。最终通过Intent成功传递值,同时发现bean需有空参构造,属性名与key一致才能避免坑。此经验分享旨在强调解决思路的重要性。
摘要由CSDN通过智能技术生成

最近在项目中使用ARouter 时候遇到了一个困扰了我同事一个星期的bug,同事苦思奇想不得其解,找到了我,自认为这种bug,有那么困难,于是就自己操作了一遍,发现我也传值不过去,那怎么解决了

   使用ARouter 遇到的坑代码:

  ARouter.getInstance().build(ARouterPath.SPORT_NORMAL_DETAIL_ACTIVITY).withParcelable("bean",bean)
.withString("xxx");
.navigation();

   从代码逻辑来看,这是没有任何问题的,但是就是传不过去,

    开始的思路,是认为 bean是否序列化没有弄好, 采用AS插件  Parcelable 把代码再序列化了一遍, 还是不行

     然后开启了第二条思路:

          

@Autowired(name="bean")
    NormalTransactionsBean bean;//这里的 这个属性名要和传入的key值统一,不然值是传不过来的.

   运行后,程序闪退   其实 写上 @Autowired(name="bean"),是应该采用withObject 的方式时候使用的,)  根据试验结果,这条路走不通

     注意事项:  看代码注释

 思路三:

    采用withObject的方式传值,试验结果,还是不行

 思路四:

    我在想这也不行,那也不行,老子不用你这个破玩意了,突然之间我豁然开朗了,用Intent传值过去,不就行了,非要用这个中心路由么?  此处不留爷,必有留爷处.  试验结果,传值成功!

  思路五:

       我是一个特别不服输的人,你不让我行,老子偏偏要搞你, 反正老子已经可以传值过去了, 我就一直在

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值