Android组件化问题指南(ARouter)

写在开头

此文主要记录老项目在组件化拆分过程中所遇到问题及相关解决方法的记录,记录下来方便以后查看。

PShttp://note.youdao.com/noteshare?id=25a3eca5158af5f31ec5ebf49099aadb (有道分享,持续记录)

1.library中使用butterknife问题

R2文件的使用
https://www.jianshu.com/p/c6e3f67e391e (此博客解决,木有问题)

2.withSerializable 传递对象没有值问题,为null

我写了个单独的博客记录(分析了下源码)
https://blog.csdn.net/say_from_wen/article/details/82423425

3.双jar包问题

组件化拆分过程中,可能会多个mouble引入同一个jar包,但是要记住,一个项目相同的jar包只能有一个。可能在你拆分的时候没问题,grade会有一定的缓存。当你偶然ReBuild整个项目的时候就会有这个错了。(类似这种:Multiple dex files define Lcom/ta/utdid2/device/UTDevice)

4.多个mouble中不能有相同的layout名字,资源名字等

类似这种,java.lang.NoSuchFieldError: No static field rl_order_list of type I in class Lcom/pa/payment/R$id异常(其他有的不报错但是看上去也会很乱)
可以在资源文件或者属性前加前缀解决,通过resourcePrefix属性进行类型检查。

5.ARouter 多个mouble中声明provider问题。

每个mouble的Group 和 provider路径不能相同,要不路由路径会注册失败从而找不到。报错:android. ARouter使用 theres no route matched! “找不到”!ARouter::No postcard!

6.主mouble依赖两个mouble,两个mouble的通信问题

最终决定把路径PathUrl写在同一个地方,可以在公共库中,减少维护成本,不用每个mouble中都有一份相同的PathUrl。

7.关于Arouter跳转

如果您通过在url路径后面加“?key = value”的方式传递参数的话,必须以Uri的方式来进行router的跳转。否则会报错路由找不到的问题。

8.provider接口参数存在泛型

获取对象的方式就需要改变一下了。
ARouter.getInstance().navigation(CityProvider.class);得到的CityProvider对象会一直是空。所以必须采用mCityProvider = (CityProvider) ARouter.getInstance().build(CityProvider.PROVIDER_PATH).navigation();的方式来强转为你想要的对象。

9.path不能太长

跳转的paht最好别太长,否则在某些机型会出现path找不到问题。(有待验证,不过在简短了path后确实可以找到了)

10.Activity在跳转问题的简要说明

Activity必须位于当前Group对象的Mouble中才可以实现跳转,否则会报错路径找不到。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值