记录一次 ARouter 接入 kotlin 踩坑记录

问题现象:按照java项目接入配置 

android{
javaCompileOptions {
    annotationProcessorOptions {
        arguments = [AROUTER_MODULE_NAME: project.getName()]
    }
}
}
dependencies{
annotationProcessor 'com.alibaba:arouter-compiler:1.2.2'
}

项目中对应的类 配置@Route(path ="/test/path")

接入地方调用

ARouter.getInstance().build("/test/path").navigation(getmContext());

一切都是那么的行云流水,没有任何问题,可是意外发生了,运行起来,点击按钮,怎么也跳转不了,也没有报错....

妈妈咪呀,一顿操作猛如虎啊,然后就仔仔细细的检查各种配置,各种调用,再看看之前项目的引用,一行一行的对照,还是没有发现问题...仔细想啊,kotlin最后编译还是java字节码啊,按照java去配置没啥毛病啊,然后就百度,注解不生效的原因,网上各种说明,都没什么毛病,最后发现了,原来kotlin的配置和java的不一样,找到官方文档,kotlin配置如下:

1.module 配置 去除java以上配置,修改为以下配置

apply plugin: 'kotlin-kapt'

kapt {
    arguments {
        arg("AROUTER_MODULE_NAME", project.getName())
    }
}

dependencies{

kapt 'com.alibaba:arouter-compiler:1.2.2'
}

注意点:

1.使用@Autowired 注解时, 必须要在对应的Activity中 调用 ARouter.getInstance().inject(this);
2.Kotlin 代码编写的项目 在 @Autowired 标注的变量上, 还需要添加注解 @JvmField

@JvmField
@Autowired(name = ICommBizConstants.IParams.PARAMS_REQ_ID)
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    ARouter.getInstance().inject(this)//使用ARouter前一定要在onCreate中调用这行代码
    ....
}

完成以上配置后,clean一下项目,点下榔头 ,结束后,点击引用path的类

会出现

 ARouter$$Group$$XXX

  的2个相关文件,那就说明,欧克了

哈哈哈哈哈哈哈哈哈....

希望可以帮到大家哈

官网传送门:https://github.com/alibaba/ARouter/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值