第二章 开发环境切换:在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之后的特性全用不了,最后花了一整天迁移项目。

注意: Android Studio 4.0以下版本对Kotlin协程的支持不够好。如果你打算用协程(我强烈推荐),请确保AS版本在4.0以上。

2.2 更新Kotlin插件到最新

虽然Android Studio自带Kotlin支持,但插件版本不一定是最新的。我建议你手动检查一下。

操作步骤很简单:

  1. 打开 Settings(Windows/Linux:File → Settings,Mac:Android Studio → Preferences)
  2. 找到 Plugins → 搜索 "Kotlin"
  3. 如果显示 Update 按钮,点击更新
  4. 如果没有,说明已经是最新版

更新完后,记得重启Android Studio。

这里有个坑,我遇到过好几次:插件更新后,项目的Gradle版本可能不兼容。别慌,后面我会讲怎么处理。

小技巧: 你可以在 Tools → Kotlin → Configure Kotlin Plugin Updates 里设置自动检查更新。我个人习惯开启「Stable」通道,不追预览版,稳定第一。

2.3 在项目中配置Kotlin

现在插件准备好了,我们来配置项目。有两种方式:

方式一:新建项目时直接选Kotlin

这是最省事的方法。创建新项目时,在语言选项里直接选Kotlin。Android Studio会自动帮你配好一切。

具体步骤:

  1. File → New → New Project
  2. 选择模板(比如 Empty Activity)
  3. 在 Language 下拉框里选择 Kotlin
  4. 点击 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() — 用冒号代替了 extends
  • override 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。这个特性我特别喜欢,代码瞬间清爽了很多。

提示: 如果你用的是Android Studio 4.1以上版本,建议使用View Binding代替Kotlin Android Extensions。后者在Kotlin 1.8之后被标记为废弃了。配置View Binding只需要在build.gradle里加一行: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 才解决。

重要提醒: 如果你要兼容Android 6.0以下设备,记得在build.gradle里启用Java 8脱糖(desugaring)。否则Kotlin的一些新特性会报错。

2.6 验证配置是否成功

配置完成后,怎么确认一切正常?我一般做三件事:

  1. 编译项目 — 点击Build → Make Project,看有没有红色错误
  2. 运行到模拟器 — 确保App能正常启动,显示"Hello, Kotlin!"
  3. 写一段Kotlin特有的代码 — 比如用 when 表达式或者数据类,看IDE是否正常提示

如果这三步都过了,恭喜你,Kotlin开发环境已经配好了。接下来就可以愉快地写Kotlin代码了。

嗯,这一章的内容就到这里。下一章我们会深入Kotlin的语法,看看它到底比Java好在哪。说实话,等你真正用起来,你会发现Kotlin的设计真的很贴心。