第二章 开发环境切换:在Android Studio中配置Kotlin
说实话,很多从Java转Kotlin的朋友,第一步就卡在了环境配置上。
我记得有个学员跟我说,他照着网上的教程配了半天,结果项目一编译就报错。后来我远程一看,好家伙,Kotlin插件版本和Gradle版本对不上,折腾了两天。
嗯,这一章咱们就把这事彻底捋清楚。我保证,跟着我的步骤走,十分钟之内你就能跑起来第一个Kotlin + Android项目。
2.1 检查你的Android Studio版本
先说个前提。Kotlin从Android Studio 3.0开始就内置支持了。但如果你还在用2.x的老版本,我建议你直接升级。为什么?因为老版本对Kotlin的支持不够完善,很多新特性用不了。
我个人习惯用最新稳定版。目前推荐Android Studio Hedgehog或更高版本。你可以在菜单栏找到:
Help → Check for Updates
如果你的版本低于3.0,别犹豫,直接去官网下载最新的。我曾经在一个老项目上吃过亏,硬撑着用AS 2.3,结果Kotlin 1.3之后的特性全用不了,最后花了一整天迁移项目。
2.2 更新Kotlin插件到最新
虽然Android Studio自带Kotlin支持,但插件版本不一定是最新的。我建议你手动检查一下。
操作步骤很简单:
- 打开 Settings(Windows/Linux:File → Settings,Mac:Android Studio → Preferences)
- 找到 Plugins → 搜索 "Kotlin"
- 如果显示 Update 按钮,点击更新
- 如果没有,说明已经是最新版
更新完后,记得重启Android Studio。
这里有个坑,我遇到过好几次:插件更新后,项目的Gradle版本可能不兼容。别慌,后面我会讲怎么处理。
2.3 在项目中配置Kotlin
现在插件准备好了,我们来配置项目。有两种方式:
方式一:新建项目时直接选Kotlin
这是最省事的方法。创建新项目时,在语言选项里直接选Kotlin。Android Studio会自动帮你配好一切。
具体步骤:
- File → New → New Project
- 选择模板(比如 Empty Activity)
- 在 Language 下拉框里选择 Kotlin
- 点击 Finish
你看,就这么简单。Android Studio会自动在 build.gradle 里添加Kotlin依赖。
方式二:在现有Java项目中添加Kotlin
如果你想把老项目迁移过来,或者像我一样喜欢手动控制配置,可以这样做:
首先,在项目级的 build.gradle 里添加Kotlin插件:
// 项目级 build.gradle
buildscript {
ext.kotlin_version = '1.9.22' // 请使用最新稳定版
repositories {
google()
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
然后,在模块级的 build.gradle 里应用插件并添加标准库:
// 模块级 build.gradle
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android' // 应用Kotlin插件
}
android {
// ... 其他配置保持不变
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
// ... 其他依赖
}
配置完后,点击右上角的 Sync Now。如果一切顺利,你的项目就可以写Kotlin代码了。
核心要点: 配置Kotlin只需要三步:1) 添加插件classpath 2) 应用插件 3) 添加标准库依赖。其他都是细节。
2.4 创建第一个Kotlin + Android项目
好,环境配好了,我们来写第一个Kotlin版的Hello World。
新建项目时,选择 Empty Activity,语言选Kotlin。Android Studio会生成类似这样的代码:
// MainActivity.kt
package com.example.myfirstkotlinapp
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
你看,和Java比,Kotlin的代码简洁了不少:
class MainActivity : AppCompatActivity()— 用冒号代替了extendsoverride fun onCreate(...)—override是小写,fun关键字声明函数savedInstanceState: Bundle?— 问号表示这个参数可以为null
我第一次看到Kotlin代码时,说实话有点不适应。但写了三天之后,我就回不去Java了。你想想看,少写那么多样板代码,谁不爱?
现在,在 activity_main.xml 里加个TextView:
<TextView
android:id="@+id/helloText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello from Kotlin!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
然后在 MainActivity.kt 里引用它:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 直接使用id,不需要findViewById!
helloText.text = "Hello, Kotlin!"
}
}
注意看,Kotlin Android Extensions插件(或者View Binding)让我们可以直接用 helloText 这个id来操作控件,不用写 findViewById。这个特性我特别喜欢,代码瞬间清爽了很多。
buildFeatures { viewBinding = true }
2.5 常见问题与避坑指南
配置过程中,你可能会遇到这些问题。我把它们列出来,省得你走弯路。
| 问题 | 原因 | 解决方案 |
|---|---|---|
| Gradle同步失败,提示Kotlin版本不兼容 | Kotlin插件版本和Gradle版本不匹配 | 查看 Kotlin-Gradle兼容性表,选择合适的版本 |
| 编译报错 "Unresolved reference: kotlinx" | 缺少Kotlin扩展库依赖 | 在dependencies里添加对应的库,比如 implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3' |
| Android Studio不识别.kt文件 | Kotlin插件未正确安装或未启用 | 检查Plugins列表,确保Kotlin插件已启用。重启AS试试 |
| 运行时报错 "Default interface methods are only supported starting with Android N" | Kotlin 1.5+使用了Java 8默认接口方法,但minSdk太低 | 在build.gradle里设置 compileOptions { targetCompatibility JavaVersion.VERSION_1_8 } |
我曾经在一个项目里卡在最后一个问题上整整半天。当时项目minSdk设的是19,Kotlin 1.6编译出来的字节码用了Java 8的特性,结果在Android 4.4的设备上直接崩溃。后来加了 coreLibraryDesugaringEnabled 才解决。
2.6 验证配置是否成功
配置完成后,怎么确认一切正常?我一般做三件事:
- 编译项目 — 点击Build → Make Project,看有没有红色错误
- 运行到模拟器 — 确保App能正常启动,显示"Hello, Kotlin!"
- 写一段Kotlin特有的代码 — 比如用
when表达式或者数据类,看IDE是否正常提示
如果这三步都过了,恭喜你,Kotlin开发环境已经配好了。接下来就可以愉快地写Kotlin代码了。
嗯,这一章的内容就到这里。下一章我们会深入Kotlin的语法,看看它到底比Java好在哪。说实话,等你真正用起来,你会发现Kotlin的设计真的很贴心。