首先,先搞明白一个概念,这里的 Java 混合 Kotlin 是指文件层级的混合,即 Java 代码还是写在 .java
文件中,Kotlin 代码还是写在 .kt
文件中,只不过是可以在 Java 的代码中可以调用自己写好的 Kotlin 类,从 Java 的角度看,它并不知道它调用的这个类是 Kotlin 写的,这个类和平时遇到的其他类的使用并没有什么特别的,例如"KotlinTest myKotlinTest = new KotlinTest();"
配置
-
先确保自己的 Android Studio 下载有 Kotlin 插件,查看路径
File -> Settings... -> Plugins -> 点击 Installed -> 查看 Languages 栏下是否有 Kotlin,如果有注意记一下版本(我的是1.9.0),等下配置要用
-
在项目根目录的
build.gradle
中,添加如下代码:buildscript {
ext.kotlin_version = '1.9.0' // 添加代码 1
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // 添加代码 2
}
}
需要注意的是,buildscript 需要在 plugins 标签之上,否则报错,贴一个正确图:
-
在需要混合编程的模块下的
build.gradle
,添加如下代码:plugins {
id 'com.android.application'
id 'kotlin-android' // 添加代码1 在该模块启动 Kotlin
}
...
android {
...
// 添加代码2 指定 kotlin 使用的 Jvm 版本,注K意要与自己使用的JDK版本一致
kotlinOption {
jvmTarget = "1.8"
}
}
...
dependencies {
...
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlin_version}" // 添加代码3 指定 Kotlin 版本
...
}
至此,配置完成,接下里创建一个样例:
Kotlin
class TestKotlin(val name: String, val age: Int) {
// 定义一个方法
fun sayHello() {
println("Hello, my name is $name and I am $age years old.")
}
}
// 可以直接运行
fun main() {
// 创建一个 Person 对象
val person = TestKotlin("Alice", 25)
// 调用对象的方法
person.sayHello()
}
创建一个 Java 测试类来调用上面的 Kotlin 类的方法:
Java
public class MainTest {
@Test
public void test() {
TestKotlin testKotlin = new TestKotlin("xxx", 1);
testKotlin.sayHello(); // 输出:Hello, my name is xxx and I am 1 years old.
}
}
完毕