Kotlin问题集锦

作者: Android派 | 来源:发表于2018-04-10 23:05 被阅读0次

    以下问题仅代表本人在使用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  里添加
    

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

    相关文章

      网友评论

        本文标题:Kotlin问题集锦

        本文链接:https://www.haomeiwen.com/subject/ablohftx.html