android studio 怎么使用kotlin

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android studio 怎么使用kotlin相关的知识,希望对你有一定的参考价值。

    kotlin定义:

Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。Kotlin可以编译成Java字节码,也可以编译成javascript,方便在没有JVM的设备上运行。

    在IDE plugins中下载Kotlin插件

    Android studio 在设置中打开plugins,然后在里面搜索Kotlin,点击安装,之后安装后重启。 

    创建、转换Kotlin文件,新建一个工程,然后你可以右键试试,看看是不是多出了2个选项。

    定位到MainActivity,在菜单栏选择“Code”,选择“Convert Java File to Kotlin File”,MainAvtivity变成了Kotlin文件。

    .配置Kotlin(其实是全自动)

    第一次使用Kotlin,Studio会提示要配置Kotlin的,点击配置即可,其实啥都不用选,直接点“ok”。

开发Android的话一般来说都是直接用Java,新修订的版本中也逐渐覆盖以往的不足,但是Android开发者们还没来得及用上它。所以这也使得Kotlin这样的语言可以有用武之地,可以让开发者们在旧的开发环境中使用新的特性。

参考技术A 谒衡岳庙遂宿岳寺题门楼(韩愈)q

如何在 Android Studio 3.0.0 中使用数据绑定和 Kotlin

【中文标题】如何在 Android Studio 3.0.0 中使用数据绑定和 Kotlin【英文标题】:How to use Data Binding and Kotlin in Android Studio 3.0.0 【发布时间】:2017-10-17 13:04:38 【问题描述】:

我刚开始使用 Android Studio 3.0.0,但每次尝试构建我的项目时都会收到此错误:

Error:Circular dependency between the following tasks:
:app:compileDebugKotlin
+--- :app:dataBindingExportBuildInfoDebug
|    \--- :app:compileDebugKotlin (*)
\--- :app:kaptDebugKotlin
     \--- :app:dataBindingExportBuildInfoDebug (*)
(*) - details omitted (listed previously)

我正在使用

kapt "com.android.databinding:compiler:2.2.0"

在我使用之前

androidProcessor "com.android.databinding:compiler:2.2.0"

它工作得很好......我做错了什么??

谢谢!

【问题讨论】:

似乎是一个错误,已创建问题:youtrack.jetbrains.com/issue/KT-17936 即使没有任何数据绑定也会出现此错误。您只需使用 1.1.2-4 版本的 kotlin 并应用插件:'kotlin-kapt'。然后你会得到这个错误 Error:Circular dependency between the following tasks: :app:compileDebugKotlin \--- :app:kaptDebugKotlin \--- :app:compileDebugKotlin () () - 省略细节 (之前列出的) 还有相关问题:issuetracker.google.com/issues/38471980 【参考方案1】:

UPD:这是为 Android Gradle 插件 3.0.0-alpha3 修复的,在你的项目根 build.gradle 中,更改 buildscript dependencies 以使用

classpath 'com.android.tools.build:gradle:3.0.0-alpha3'

这实际上是 Kotlin Gradle 插件 1.1.2-4 与 Android Gradle 插件 3.0.0-alpha1 互操作的一个错误,由任务的输入和输出的设置方式(以及任务的设置方式)引起与依赖关系相连)。

感谢@VyacheslavGerasimov 创建问题KT-17936。


作为临时解决方法,您可以尝试恢复为 Kotlin Gradle 插件 1.1.2-2 并禁用增量编译:

在您项目的根目录 build.gradle 中,更改 Kotlin Gradle 插件的版本:

buildscript 
    ...
    dependencies 
        ...
        classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.2-2'
    

local.properties 添加到项目根目录,使用以下行:

kotlin.incremental=false

known issue Kotlin Gradle 插件 1.1.2-2 及更低版本在最新的 AGP 版本中崩溃,禁用增量编译似乎可以解决该崩溃问题。

【讨论】:

我相信你的意思是 gradle.properties @LeandroBorgesFerreira,您可以使用其中的任何一个,因为 Gradle 也会检测并解释您项目中的 local.properties 文件。好吧,也许local.properties 更适合本地机器属性。 这会导致这个错误:***.com/questions/44056104/… 实际上恢复到 1.1.2-3 也可以。将 Kotlin 1.1.2-4 与 kotlin-kapt 插件一起使用时,Android Studio 2.3.2 和 gradle 2.3.2 也存在同样的问题 @hotkey based on issuetracker.google.com/issues/38447344 这是 Android 插件中的问题,而不是 kotlin gradle 插件中的问题。已修复并计划在下一个 3.0.0 alpha 版本中发布。【参考方案2】:

您似乎需要在模块级别的应用程序 .gradle 中添加 3 个 gradle 条目来添加数据绑定

    apply plugin: 'kotlin-kapt' android ... dataBinding enabled = true dependencies ...... kapt "com.android.databinding:compiler:$compiler_version"

请注意,我在项目级别构建 gradle 中将编译器版本设为变量,以便可以从一个地方对其进行管理

默认为:ext.kotlin_version = '1.1.3-2'

我添加了括号语法:

ext
    kotlin_version = '1.1.3-2'
    compiler_version = '3.0.0-beta6'

【讨论】:

这是正确的答案,添加 kotlin-kapt 和依赖行。最佳答案不再相关 喜欢使用版本变量 我得到:-所有版本 [kapt] 发生异常:java.lang.NullPointerException @PavelZaitsev 好久没用过android studio了【参考方案3】:

对于仍在寻找合适解决方案的用户,Google 已在 Android Studio 3.0 Canary 3 构建中修复了此问题。

2017 年 6 月 2 日,星期五

我们刚刚向 Canary 发布了 Android Studio 3.0 Canary 3 和 开发频道。 Android Gradle Plugin 3.0.0-alpha3 也发布了 通过 maven.google.com。此版本修复了 GradleKotlin、 和许多其他修复。我们将继续修复 Studio 各个区域的错误 3.0 我们稳定了我们的功能,所以请继续传递反馈。

工作梯度配置:

build.gradle(项目)

buildscript 
    ext.kotlin_version = '1.1.2-4'
    repositories 
        jcenter()
        maven 
            url 'https://maven.google.com'
        
    
    dependencies 
        classpath 'com.android.tools.build:gradle:3.0.0-alpha3'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    

build.gradle(模块)

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'


android 
    dataBinding.enabled = true

dependencies 
    kapt "com.android.databinding:compiler:3.0.0-alpha3"

【讨论】:

如何在 Android Studio 2.3.2 中解决这个问题? 您可以使用带有增量 false 的旧版 Kotlin 插件。通过“热键”查看上一个答案 不,1.1.2-4 仍然不起作用。仍然必须使用1.1.2-2 并将 kapt "com.android.databinding:compiler:3.0.0-alpha3" 添加到您的 build.gradle(模块)中,否则您将获得 Unresolved reference: databinding。 1.1.2-5 也未修复【参考方案4】:

如果您使用 Kotlin Gradle 插件 1.3 及更高版本,则无需指定 kapt "com.android.databinding:compiler:$plugin_version"

https://youtrack.jetbrains.com/issue/KT-32057

在 build.gradle 文件中指定 dataBinding 就足够了:

android 
    ...
    dataBinding 
        enabled = true
    

android 
    ...
    buildFeatures 
        dataBinding true
    

【讨论】:

【参考方案5】:

我遵循了这些步骤,它对我非常有效。 Medium article on Android’s Data Binding with Kotlin

【讨论】:

以上是关于android studio 怎么使用kotlin的主要内容,如果未能解决你的问题,请参考以下文章

android studio怎么用kotlin

Android首要开发语言:架构师详解在Android Studio上使用Kotlin

android studio安装和配置kotlin

Android Studio里面编写Kotlin代码的时候,怎么设置将类或者函数的第一个大括号默认位置另起一行?

androidstudio怎么创建LearnKotlin

Android Studio 3.1.3 - 未解决的参考:R - Kotlin