Kotlin问题集锦

以下问题仅代表本人在使用Kotlin的时候遇到的问题,解决方案并不一定能解决您的问题,但可以作为参考,说不定就有用了来

问题列表

  1. Android gradle 3.X 依赖问题
  2. Kotlin 和 databinding 同时使用出现的问题

1.Android gradle 3.X 依赖问题

静静悄悄的升级到 gradle 3.X之后,依赖库的方法有所改变

在3.X之前

compile project(':base_utils')

更新之后

implementation project(':base_utils')

或者

api project(':base_utils')

介绍下这几种依赖库的方法异同点
场景1 :A library 依赖 B library
上述场景使用 compile implementation api 三种方式效果相同没有任何影响
场景2 :A library 依赖 B library ,B library 依赖 C library
上述场景中使用 compile api 两种方式效果相同 ,最终效果 在 A library中可以调用C library的相关内容;使用 implementation 方式的话 A library则不可使用C library 提供的相关内容

总而言之:compile 和 api 效果一样。implementation 依赖的方式只可以将相关内容暴露给直接引用的library。可以理解为 implementation 方式不具有传递性或者是依赖的库属于类似private的方式

2.Kotlin 和 databinding

同时使用Kotlin和databinding会有一些异常问题,一不小心就踩坑

遇到的异常信息
Unresolved reference: databinding
Error:Execution failed for task ':xxxx:compileDebugKotlin'.

Unresolved reference: databinding
Error:Execution failed for task ':xxxx:compileDebugKotlin'.
> Compilation error. See log for more details

解决方法如下:
1.在build.gradle增加如下方法,配置完之后最好Rebuild一下(反正一开始我没有Rebuild又浪费了一个小时去找其他原因)

kapt {
    generateStubs = true
}
buildscript {
    ...
    dependencies {
        ...
        kapt "com.android.databinding:compiler:your gradle version" //注意是gradle版本
    }
}

2.Android Gradle Plugin 3.1.0 Canary 6附带一个可选的新编译器。 要开始使用它,请更新您的gradle.properties文件以包含以下行:(未实验,去官网查看发现还有这 操作)

  android.databinding.enableV2=true  // 注意是在  gradle.properties  里添加

未完待续```````````

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,446评论 25 708
  • 请允许我借鉴前辈们的东西~~~~ 感激不尽~~~~~ 以下为Android 框架排行榜 么么哒~ Android...
    嗯_新阅读 2,127评论 3 32
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,568评论 2 45
  • 1.手脑算 昨天教了0-9的手势 今天巩固练习 弟弟变魔术 过家家 2.绘本 牛津树1-get on brown ...
    二宝妈妈upupup阅读 147评论 0 0