从0到1实现一个Android路由——对Kotlin模块的支持
Posted xingfeng_coder
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从0到1实现一个Android路由——对Kotlin模块的支持相关的知识,希望对你有一定的参考价值。
从0到1实现一个android路由系列文章
- 从0到1实现一个Android路由(1)——初探路由
- 从0到1实现一个Android路由(2)——URL解析器
- 从0到1实现一个Android路由(3)——APT收集路由
- 从0到1实现一个Android路由(4)——多模块的APT收集路由
- 从0到1实现一个Android路由(5)——对Kotlin模块的支持
- 从0到1实现一个Android路由(6)——拦截请求再跳转
在从0到1实现一个Android路由(3)——APT收集路由中,提到过Processor处理Kotlin类时,无法得到注解从而路由表不正确,本章将介绍如何解决这个问题。
参考自阿里的ARouter。
解决方案
其实解决方案很简单,修改在有用注解标注的Kotlin写的Activity的module的build.gradle。修改点有几点:
- 添加apply plugin:‘kapt’
- 将annotationProcessor引用的注解处理器改为kapt
- 如果需要添加参数的话
kapt
arguments
arg("module_name", "App")
因为app模块本身就是Kotlin和Java混合的,因此修改其build.gradle如下,
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'
kapt
arguments
arg("module_name", "App")
dependencies
implementation project(':annotation')
implementation project(':api')
implementation project(":other_module")
kapt project(":compiler")
另外,再在原来使用addUrl()添加Kotlin对应的url的地方,更改为使用注解方式即可。
经过实验发现,大功告成,哈哈。关于代码,可以参考github
关注我的技术公众号,不定期会有技术文章推送,不敢说优质,但至少是我自己的学习心得。微信扫一扫下方二维码即可关注:
以上是关于从0到1实现一个Android路由——对Kotlin模块的支持的主要内容,如果未能解决你的问题,请参考以下文章