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

相关文章

在React中引入Tailwind CSS的完整指南

《在React中引入TailwindCSS的完整指南》在现代前端开发中,使用UI库可以显著提高开发效率,TailwindCSS是一个功能类优先的CSS框架,本文将详细介绍如何在Reac... 目录前言一、Tailwind css 简介二、创建 React 项目使用 Create React App 创建项目

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Spring Boot结成MyBatis-Plus最全配置指南

《SpringBoot结成MyBatis-Plus最全配置指南》本文主要介绍了SpringBoot结成MyBatis-Plus最全配置指南,包括依赖引入、配置数据源、Mapper扫描、基本CRUD操... 目录前言详细操作一.创建项目并引入相关依赖二.配置数据源信息三.编写相关代码查zsRArly询数据库数

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

JavaScript错误处理避坑指南

《JavaScript错误处理避坑指南》JavaScript错误处理是编程过程中不可避免的部分,它涉及到识别、捕获和响应代码运行时可能出现的问题,本文将详细给大家介绍一下JavaScript错误处理的... 目录一、错误类型:三大“杀手”与应对策略1. 语法错误(SyntaxError)2. 运行时错误(R