ARouter icon indicating copy to clipboard operation
ARouter copied to clipboard

关于不同版本间Autowired inject机制的问题

Open protectedMan opened this issue 4 years ago • 1 comments

版本 A : api 'com.alibaba:arouter-api:1.5.0' annotationProcessor 'com.alibaba:arouter-compiler:1.2.2'

版本 B : api 'com.alibaba:arouter-api:1.5.1' annotationProcessor 'com.alibaba:arouter-compiler:1.5.1'

使用 Arouter获取FragmentA,此时不传递param1参数.

版本 A : 不会报错 版本 B : ARouter.getInstance().inject会报空指针的错误

也就是说在版本B中, 如果类中定义了参数, 但是你没有传这个参数, 就会有如下报错: image 从版本A升级到版本B升级建议, ARouter.getInstance().inject 进行trycash捕获崩溃

protectedMan avatar Jan 27 '21 01:01 protectedMan

1.5.0版本,inject方法已经在 try-catch 中了 image

而1.5.1版本中,仅getSyringe在 try-catch 中,而inject并不在 try-catch 中。 image

所以如果遇到getIntent()getIntent().getExtras()getArguments()为 null 的情况,就会引起空指针异常。 已提交合并处理空指针的合并请求 #903 ,希望官方尽快合并,并发布1.5.2。

YuYongzhi avatar Mar 04 '21 07:03 YuYongzhi