android studio 怎么使用kotlin
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android studio 怎么使用kotlin相关的知识,希望对你有一定的参考价值。
kotlin定义:
Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。Kotlin可以编译成Java字节码,也可以编译成javascript,方便在没有JVM的设备上运行。
android studio使用Kotlin开发
在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。此版本修复了 Gradle、Kotlin、 和许多其他修复。我们将继续修复 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首要开发语言:架构师详解在Android Studio上使用Kotlin