본문 바로가기
프로그래밍/안드로이드

[Android Studio] Kotlin 버전을 2.0.x 으로 마이그레이션 하기

by dev_gyu 2025. 1. 4.
728x90

약 반 년전에 출시된 Kotlin 2.0.0 버전이 어느 덧 2.0.20 버전을 바라보고 있다.

하지만 그런 와중에도 나의 프로젝트들의 Kotlin 버전은 1.9.0 ..

 

Kotlin 2.0.0 에 적용된 K2 컴파일러의 효과와 수많은 기능 변화를 사용해보기 위해 프로젝트들의 Kotlin 버전들을 올려보려고 한다.

(이러한 기능은 아래 주소 참조)

https://kotlinlang.org/docs/whatsnew20.html#smart-cast-improvements

 

What's new in Kotlin 2.0.0 | Kotlin

 

kotlinlang.org

 


 

우선 시작하기 앞서 빌드 결과물이 .Kotlin 폴더에 포함되므로, gitignore 에 추가할지 설정을 해준다.

# gitignore
.kotlin

 

다음으로 코틀린 버전을 설정해주기 위해 Module - build.gradle.kts 로 이동 후 새로운 코드를 추가해준다.

주석 코드의 경우 앞으로는 사용하지 않으므로 삭제해준다.

# android {
#  kotlinOptions {
#    jvmTarget = "17"
#  }
#}

android {
    kotlin {
        compilerOptions {
            jvmTarget.set(JvmTarget.JVM_17)
        }
    }

    extensions.getByType<KotlinAndroidProjectExtension>().apply {
        compilerOptions {
            jvmTarget.set(JvmTarget.JVM_17)
        }
    }
}

 

이후 Version Catalog 에서 Kotlin Version 을 2.0.x 버전으로 수정해주면 끝.

 

# Compose 를 사용하는 경우 추가로 해야할 일

만약 컴포즈를 사용하는 경우 Compose Compiler 가 Kotlin 2.0 부터 Kotlin 에 의해 직접 관리되므로 마이그레이션이 추가적으로 필요하다.

# kotlin 과 버전이 같게 설정
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }

 

위 코드를 VersionCatalog 에 추가하고 루트 프로젝트에 아래 코드를 추가해준다

alias(libs.plugins.compose.compiler) apply false

 

그리고 각 모듈에도 추가로 설정해준다.

plugins {
  alias(libs.plugins.compose.compiler)
}

# android {
#  composeOptions {
#    kotlinCompilerExtensionVersion = "1.5.14"
#  }
#}

android {
  composeCompiler {
    enableStrongSkippingMode = true
    includeSourceInformation = true
  }
}

 

주석 부분은 앞으로 사용하지 않을 것이므로 삭제해주면 된다.

 

# 적용 확인

Android Studio -> Settings -> Other Settings -> Kotlin Compiler 로 들어가 Kotlin compiler version 이 아래 사진처럼 2.0.0 으로 되었는지 확인해보자. 

 

# K2 Complier 적용

위처럼 Kotlin 2.0.0 을 적용했다고 하더라도 K2 Complier 가 자동적으로 적용되지는 않는 듯하다.

Android Studio -> Settings -> Languages & Frameworks -> Kotlin 을 눌러 Enable K2 Kotlin Mode 를 켜주도록 하자.


Reference

728x90