跳转到正文
YGJoon 技术博客

Android Kotlin 环境搭建与语法速览

发布于:更新于:
·1.3k 字 · 约 3 分钟·作者:
先跑通 JDK、Android Studio 与 Kotlin DSL 工程,再用 Dart 和 Kotlin 的语法对照认识变量、空安全及项目结构。
Android Kotlin 环境搭建与语法速览文章封面
目录

开发环境准备

1. 安装 JDK

2. 安装 Android Studio

3. 配置 Kotlin DSL 项目

新建项目时选择 Empty Activity,语言选择 Kotlin,构建脚本默认使用 Gradle Kotlin DSL(build.gradle.kts)。

// 根目录 settings.gradle.kts
pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
    }
}

include(":app")

Kotlin 基本语法回顾

1. 入口函数与包结构

package com.example.hellokt

fun main() {
    println("Hello Kotlin")
}

2. 变量与常量

val appName: String = "Demo"   // 只读
var counter: Int = 0           // 可变

val lazyValue by lazy {
    "初始化只会执行一次"
}

3. 字符串模板

val name = "Android"
val version = 14
val message = "Hello $name, API $version"

4. 空安全

val text: String? = null
val length = text?.length ?: 0

fun displayLength(value: String?): Int {
    val text = requireNotNull(value) { "value must not be null" }
    return text.length
}

Android 工程结构速览

app/
├── build.gradle.kts         // 模块配置
├── src/main/
│   ├── AndroidManifest.xml
│   ├── java/                // Kotlin/Java 源码
│   ├── res/                 // 资源文件
│   └── assets/
└── src/test/                // 单元测试

示例中的 SDK 和依赖版本来自后续修订,并非文章原始发布时的配置。这里主要展示配置字段的位置;新工程应按所选 Android Gradle Plugin、Gradle Wrapper、JDK 与 compileSdk 组合确定实际版本:

android {
    namespace = "com.example.demo"
    compileSdk = 34

    defaultConfig {
        applicationId = "com.example.demo"
        minSdk = 24
        targetSdk = 34
        versionCode = 1
        versionName = "1.0"
    }
}

dependencies {
    implementation("androidx.core:core-ktx:1.13.1")
    implementation("androidx.appcompat:appcompat:1.7.0")
    testImplementation("junit:junit:4.13.2")
}

IDE 效率提升技巧

常见问题排查

问题可能原因解决办法
Gradle 构建失败Gradle 使用的 JDK 与项目要求不匹配检查终端的 JAVA_HOME、Android Studio 选定的 Gradle JDK 和 Gradle Wrapper;项目需要固定 Gradle JDK 时,gradle.properties 使用 org.gradle.java.home,而不是 JAVA_HOME(Gradle 文档)
Kotlin 插件版本冲突Kotlin Gradle Plugin、Gradle 与 Android Gradle Plugin 版本不匹配对照项目使用的插件兼容要求,成组调整版本
设备无法运行USB 调试未开启在开发者选项中开启 USB 调试

Dart 开发者可以先对照这些语法

有 Dart 背景时,语法对照能帮助快速建立直觉。相似写法不代表运行语义相同,尤其是 Future/协程、Stream/Flow 和对象组合方式;迁移时还要看 Kotlin API 的生命周期与调度规则。

DartKotlin对照时留意
final x = 1;val x = 1两者都限制重新赋值;集合对象本身仍可能可变
var x = 1;var x = 1都允许重新赋值,类型规则仍由各自语言决定
String? value = null;val value: String? = null都用 ? 标记可空类型,后续解包规则不同
future.then(...)suspend 函数与协程作用域suspend 调用需要协程上下文,并不等同于 Future 链式调用
Stream<T>Flow<T>两者都表达异步数据序列,收集、取消与背压语义要看具体实现
mixin接口默认实现或委托组合机制不同,不能按关键字一一替换
.. 级联apply { ... }apply 返回接收者,但可执行语句和可用类型各有边界
is 类型测试is 类型检查与智能转换条件分支中都可按检查结果缩小类型

迁移中常碰到的几个细节:

Android Studio 基于 IntelliJ 平台并内置 Kotlin 支持。实际构建时,应按项目的 Gradle Wrapper、JDK 和 Kotlin 插件版本配置环境;单纯安装 IDE 插件无法替代这些版本约束。


分享这篇文章:


相关文章

下一篇
Android Kotlin 数据类型与空安全