Kotlin集成Arouter

2023-11-20

原文博客

使用场景

为了软件间的解耦操作,确保模块之间Activity的相互跳转不受影响。故引用阿里巴巴的Arouter。但官网上还没有针对Kotlin的集成说明,故在此记录下来

如何使用

  1. gradle配置
  2. 目录配置,常量类配置
  3. Application中进行Arouter初始化
  4. Activity的配置

1. gradle配置

注意需要在两个地方进行配置

1.根目录下的build.gradle中配置,在dependencies中增加arouter-register引用

 dependencies {
        classpath "com.alibaba:arouter-register:1.0.2"
    }

2.在模块所在的build.gradle中添加引用及编译配置

plugins {
//    1.增加kotlin-kapt引用
    id 'kotlin-kapt'
}



android {

//  2.增加Arouter编译配置,注意顺序。此处应该在android{}中
    kapt {
        arguments {
            arg("AROUTER_MODULE_NAME", project.getName())
        }
    }
}

dependencies {

// 3. 添加gradle引用
    implementation 'com.alibaba:arouter-api:1.5.1'
    kapt "com.alibaba:arouter-compiler:1.5.1"

}

注意:此处的与官网教程不一样。官网的配置是针对java的,所以我没有使用
javaCompileOptionsannotationProcessor'com.alibaba:arouter-compiler:1.5.1'这两个配置对kotlin不生效。

2. 目录配置,常量类配置

新建一个ui包用于存放需要跳转的Activity,随后新建一个ConstantObject文件。添加Activity的常量资源

常量类Constants

object Constants {
    object Activitys{
        const val RECYCLELIST_ACTIVITY = "/ui/RecycleListActivity"
    }
}

目录结构

3. 在Application中进行Arouter初始化

class App : Application() {
    override fun onCreate() {
        super.onCreate()
        if (BuildConfig.DEBUG){
            ARouter.openLog()
            ARouter.openDebug()
        }
        ARouter.init(this)

    }

    override fun onTerminate() {
        super.onTerminate()
        ARouter.getInstance().destroy()
    }
}

注意:此处有两个小坑。

  1. 重写的APP类需要在Manifest中进行添加,否则不会执行。(只需要在application节点中添加name并指向这个类即可)
  2. 注意BuildConfig这个类是引用谁的,因为Arouter本身也有BuildConfig此处需要引用AnroidBuildConfig。博主引用错了后,一直无法跳转。而且也一直没有报错,坑了很久

4. Activity的配置

以上工作做完后,就可以在需要跳转的Activity进行配置了。

跳转到的Activity,增加@Route注解

@Route(path = Constants.Activitys.RECYCLELIST_ACTIVITY)
class RecycleListActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_recycle_list)
    }
}

需要进行跳转的Activity,调用Arouter单例进行跳转

 mBtnList.setOnClickListener {
            ARouter.getInstance().build(Constants.Activitys.RECYCLELIST_ACTIVITY).navigation()
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kotlin集成Arouter 的相关文章

随机推荐

  • Alluxio集群环境搭建,救救孩子!

    写在前面 最近的一段时间内我会做HDFS Alluxio HBase相关的开发工作 我会继续学习并分享不限于这些组件的知识 正常来说 搭建个集群环境根本不需要专门写个文章 但是这次我必须写 顺带必须小吐槽一下 Alluxio官方文档搭建集群
  • python程序填空题 快乐的数字_Python习题之快乐的数字

    快乐的数字 描述 编写一个算法来确定一个数字是否 快乐 快乐的数字按照如下方式确定 从一个正整数开始 用其每位数的平方之和取代该数 并重复这个过程 直到最后数字要么收敛等于1且一直等于1 要么将无休止地循环下去且最终不会收敛等于1 能够最终
  • Spring Boot整合ElasticSearch

    一 ES客户端 ES提供多种不同的客户端 1 TransportClient ES提供的传统客户端 官方计划8 0版本删除此客户端 2 RestClient RestClient是官方推荐使用的 它包括两种 REST Low Level C
  • vs+qt新建ui项目

    新建项目入门参考教程 新建项目入门参考教程 手动调整UI及程序编写 手动调整UI及程序编写 Qss基础 Qt part 6 QSS Qt样式表 界面美化1 Qt part 7 QSS参考样式表 界面美化2 Qt part 8 QSS 按键菜
  • ArcGIS中KML/KMZ转为.shp文件

    kml kmz到 gt layer到 gt shp 1 打开ArcMap gt ArcToolbox 2 在ArcToolbox中选择 转换工具 gt 由KML转出 gt KML转图层 3 在 KML转图层 的弹出框中 选择并导入KML文件
  • numpy基本矩阵操作

    矩阵乘法 numpy当中常用的矩阵乘法有两种 numpy dot和numpy matmul 当对象是2D矩阵的时候 这两个函数都是进行最正常的矩阵乘法 import numpy as np a np array 1 2 3 4 b np a
  • java-ipfs-api.jar的食用方法

    引入java ipfs api jar 从仓库引入 在pom xml中添加仓库
  • 微信小程序实现车牌号键盘

  • Adobe软件还行吗?

    前段时间 美国政府 准备通过诉讼阻止Adobe去年公布的 以200亿美元收购Figma的交易 理由是此举属于反竞争行为 新闻一出 Adobe股价旋即下跌 但跌幅并不像2022年刚公布这笔交易时那么迅猛 看起来 相较于收购成功 投资者们反而希
  • gzip模块配置指令

    1 gzip指令 该指令用于开启或者关闭gzip功能 语法 gzip on off 默认值 gzip off 位置 http server location 注意只有该指令为打开状态 下面的指令才有效果 http gzip on 2 gzi
  • Python学习:random模块下的choices()函数详解

    1 random choice seq 函数 从非空序列中随机选取一个数据并返回 该序列可以是list tuple str set 举例 import random print random choice choice 结果 choice其
  • IP包头&ARP协议笔记

    一 IP包头分析 1 帧中的IP包头 从版本到可选项 其中2为帧头 注 1 IP包头最小长度 20字节 即可选项以前部分 IP包头长度是可变的 2 可选项最长可以是40个字节 故IP包头最长可以是60个字节 1 版本 4 说明是IPv4 2
  • iOS线程初探(四) GCD 和 NSOperation 小结

    参考资料 关于iOS多线程 看我就够了 GCD 在GCD中 有两个概念很重要 那就是任务和队列 任务 其实就是你需要做的事情 一个Block而已 任务有两种执行方式 同步执行和异步执行 同步执行 会阻塞当前线程 直至该任务执行完成后当前线程
  • 从零开始学Python(四)推导式、多参数解析、装饰器

    Welcome Huihui s Code World 接下来看看由辉辉所写的关于Python的相关操作吧 目录 Welcome Huihui s Code World 一 推导式 1 列表推导式 2 集合推导式 3 字典推导式 二 多参数
  • Python的高级特征你知多少?来对比看看

    https www toutiao com a6682591624012235272 2019 04 22 13 48 29 Python 多好用不用多说 大家看看自己用的语言就知道了 但是 Python 隐藏的高级功能你都 get 了吗
  • 解决:Java source1.5不支持diamond运算符,请使用source 7或更高版本以启用diamond运算符

    Maven默认用的是JDK1 5去编译 diamond运算符 指的是JDK1 7的一个新特性 List
  • python量化 双均线策略(金叉死叉)

    小策略 策略逻辑是在金叉时候买进 死叉时候卖出 所谓金叉死叉是两条均线的交叉 当短期均线上穿长期均线为金叉 反之为死叉 1 jqdata 网页端执行 下面是策略代码及结构 导入函数库 from jqdata import 初始化函数 def
  • Linux 系统实现 SSH 连接的 3 种 方式

    Linux 系统实现 SSH 连接的 3 种 方式 密码登入 公钥登入 私钥登入 登入前提 服务端安装好 ssh 服务 openssh server 客户端与服务器端均要拥有 ssh key 可以使用命令 ls ssh 来查看是否拥有 id
  • P1073-最优贸易

    1 include
  • Kotlin集成Arouter

    原文博客 使用场景 为了软件间的解耦操作 确保模块之间Activity的相互跳转不受影响 故引用阿里巴巴的Arouter 但官网上还没有针对Kotlin的集成说明 故在此记录下来 如何使用 gradle配置 目录配置 常量类配置 在Appl