Android组件化问题指南(ARouter)

2023-11-01 10:38

本文主要是介绍Android组件化问题指南(ARouter),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在开头

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

PS:http://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中才可以实现跳转,否则会报错路径找不到。

这篇关于Android组件化问题指南(ARouter)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/322366

相关文章

解决IDEA报错:编码GBK的不可映射字符问题

《解决IDEA报错:编码GBK的不可映射字符问题》:本文主要介绍解决IDEA报错:编码GBK的不可映射字符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录IDEA报错:编码GBK的不可映射字符终端软件问题描述原因分析解决方案方法1:将命令改为方法2:右下jav

MyBatis模糊查询报错:ParserException: not supported.pos 问题解决

《MyBatis模糊查询报错:ParserException:notsupported.pos问题解决》本文主要介绍了MyBatis模糊查询报错:ParserException:notsuppo... 目录问题描述问题根源错误SQL解析逻辑深层原因分析三种解决方案方案一:使用CONCAT函数(推荐)方案二:

Redis 热 key 和大 key 问题小结

《Redis热key和大key问题小结》:本文主要介绍Redis热key和大key问题小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、什么是 Redis 热 key?热 key(Hot Key)定义: 热 key 常见表现:热 key 的风险:二、

SpringBoot整合OpenFeign的完整指南

《SpringBoot整合OpenFeign的完整指南》OpenFeign是由Netflix开发的一个声明式Web服务客户端,它使得编写HTTP客户端变得更加简单,本文为大家介绍了SpringBoot... 目录什么是OpenFeign环境准备创建 Spring Boot 项目添加依赖启用 OpenFeig

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Spring 中的循环引用问题解决方法

《Spring中的循环引用问题解决方法》:本文主要介绍Spring中的循环引用问题解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录什么是循环引用?循环依赖三级缓存解决循环依赖二级缓存三级缓存本章来聊聊Spring 中的循环引用问题该如何解决。这里聊

Spring Boot中JSON数值溢出问题从报错到优雅解决办法

《SpringBoot中JSON数值溢出问题从报错到优雅解决办法》:本文主要介绍SpringBoot中JSON数值溢出问题从报错到优雅的解决办法,通过修改字段类型为Long、添加全局异常处理和... 目录一、问题背景:为什么我的接口突然报错了?二、为什么会发生这个错误?1. Java 数据类型的“容量”限制

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图