项目引用Kotlin与databinding,ARouter,Architecture Components冲突解决办法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目引用Kotlin与databinding,ARouter,Architecture Components冲突解决办法相关的知识,希望对你有一定的参考价值。

参考技术A

原本java的项目引入Kotlin作为开发语言,在模块还没引用kotlin之前是采用databinding和ARouter进行ui绑定和模块界面跳转的,但是引入Kotlin后出现问题1:databinding冲突;问题2:ARouter提示跳转路径找不到;问题3:android Architecture Components提示找不到ViewModelProviders

在自己的模块的gradle文件进行配置,我是在module_main模块中引入Kotlin进行开发的,所以我需要在app(module_main)build.gradle文件中添加一下配置信息有

这个仅使用与你项目本来是可以用ARouter来进行跳转的,在跳转到Kotlin的Activity时候提示找不到路径的场景。

这里需要弄清楚kapt与annotationProcessor区别可以查看 KAPT(Annotation Processing for Kotlin)是什么

google新推出MVVM+Android Architecture Components,优势在于不用管理Activity与Fragment的生命周期,当数据更新时候会自动通知到ui上,当然它这个实现还是基于观察者模式的,订阅-发布过程。作为一名优(懒)秀(惰)程序员当然要引入自己项目中啦。

问题来了,javaUI跳转到Kotlin写的UI上App闪退,项目报错信息: Failed resolution of: Landroid/arch/lifecycle/ViewModelProviders ,google了很多方法之后都没用,突然想到ARouter的解决方法,有点共同性,灵机一动,我就把上面的annotationProcessor替换成了kapt,然后项目就成功运行了。真是机(傻)智(逼)如(shi)我(wo)。其实核心问题就是没弄懂annotationProcessor的作用。想学习如何使用Android Architecture Components的童鞋可以去github的官方demo学习,链接如下 android-lifecycles

希望能帮到大家增加对android的热爱,fighting……

以上是关于项目引用Kotlin与databinding,ARouter,Architecture Components冲突解决办法的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin之Databinding的配置和使用

Kotlin之Databinding的配置和使用

Android开发:关于Databinding与Viewbinding以及kotlin-android-extensions

Android开发:关于Databinding与Viewbinding以及kotlin-android-extensions

Android开发:关于Databinding与Viewbinding以及kotlin-android-extensions

Android开发:关于Databinding与Viewbinding以及kotlin-android-extensions