【发布时间】:2017-07-11 04:59:44
【问题描述】:
我有一个使用 Java 开发的 Android 应用程序。我现在想开始在同一个应用程序中使用 Kotlin。是否可以在现有应用中同时使用 Kotlin 和 Java?
【问题讨论】:
标签: kotlin
我有一个使用 Java 开发的 Android 应用程序。我现在想开始在同一个应用程序中使用 Kotlin。是否可以在现有应用中同时使用 Kotlin 和 Java?
【问题讨论】:
标签: kotlin
最简单的方法是:
【讨论】:
【讨论】:
将 Kotlin 启用到您现有的 Android 项目中。请按以下步骤操作:-
应用级构建文件:- 添加
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
添加依赖项:-
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
项目级构建文件:-
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
【讨论】:
在 Android Studio 4 中,无需为 Java 项目手动配置 Kotlin。
将 Kotlin 文件添加到 Java 项目时,Android Studio 会自动设置 Kotlin。
这是完整的过程:
Activity)Kotlin作为语言注意:完成后,它无法解析 Kotlin Activity 中的 R 文件。为了解决这个问题,我将鼠标悬停在编辑器中的红色R 上,然后点击alt-enter。
最后,在我的 MainActivity.java 中:
Intent launchNewIntent = new Intent(this, KotlinActivity.class);
startActivityForResult(launchNewIntent, 0);
此代码从 Java 中的 MainActivity 打开 KotlinActivity。
【讨论】:
要为您现有的纯 Java 项目启用 Kotlin 支持,请按照以下步骤操作,Android Studio 将自动为您设置所有内容:-
你已经完成了,一切顺利!
注意:-Android Studio 会自动在相应的文件中为您添加以下代码行 -
在应用程序级 Gradle 文件中:-
apply plugin: 'kotlin-android'
......
dependencies{
......
implementation "androidx.core:core-ktx:+"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.1.0"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}
......
repositories {
mavenCentral()
}
在项目级 Gradle 文件中
buildscript {
ext.kotlin_version = '1.3.72'
......
dependencies {
......
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
【讨论】:
可以同时使用 Java 和 Kotlin。 如果它是一个小项目,我建议您将现有的 java 文件转换为 Kotlin,这可以使用 ctrl+alt+shift_k 快捷方式轻松完成。 如果项目非常大,您可以在 Kotlin 中创建新活动时保留您的 java 类。 我有一个应用程序,我的许多模型类都是用 java 编写的,但活动和 UI 本身是用 Kotlin 编写的。 由于 Kotlin 是基于 Java 的,因此在同一个项目中同时使用两种语言是没有问题的,只要您的 java 文件是在与 Kotlin 类不同的类中创建的
【讨论】:
在创建活动Image时只需新建一个Activity并将Source Language设置为Kotlin
【讨论】:
只需单击 ctrl+alt+shift+k 即可将整个应用程序从 java 转换为 kotlin。并且记住在你这样做的时候让你的系统连接到活跃的互联网,因为它需要下载所需的插件。我认为你这样做之后会很好。
【讨论】: