방대한 문서보다 동작하는 소프트웨어

개발

[안드로이드] 코틀린, 컴포즈 최신버전 빌드 에러 해결, Compose compiler

꽃게장세트 2022. 7. 17. 23:50

에러

This version (1.2.0-rc02) of the Compose Compiler requires Kotlin version 1.6.10 but you appear to be using Kotlin version 1.7.10 which is not known to be compatible. Please fix your configuration (or suppressKotlinVersionCompatibilityCheck but don't say I didn't warn you!).

코틀린과 컴포즈의 최신버전을 사용하려는데 위와 같은 빌드에러가 나타났습니다.

원인

원인은, kotlinCompilerExtensionVersion 과 관련이 있습니다. 코틀린이나 컴포즈를 최신버전으로 사용하고자 할 때 컴포즈 컴파일러가 코틀린 최신버전을 따라가지 못하면서 발생하는 문제인 것 같습니다.(자신은 없네요..;) 구글, 젯브레인에서도 해결법을 강구하고 있는 것으로 알고 있습니다.

해결

아직 정식 배포되지 않은 컴포즈 컴파일러를 지정하여 해결했습니다. 물론, 코틀린 최신버전에 대응하는 컴포즈 컴파일러 버전이어야 합니다.

composeOptions {
  kotlinCompilerExtensionVersion = "1.2.1-dev-k1.7.10-27cf0868d10"
}

아직 배포되지 않았기 때문에 개발중인 버전의 repository가 필요합니다. 프로젝트 수준의 build.gradle.kts 에 개발중인 repository 를 선언하면 될 것 같지만, settings.gradle.kts 에 선언해야 한다는 것을 명심하세요. 저는 코틀린 1.7.10, 컴포즈 1.3.0.alpha01 버전을 추가했습니다.

 

settings.gradle.kts:

pluginManagement {
  repositories {
    gradlePluginPortal()
    google()
    mavenCentral()
  }
}
dependencyResolutionManagement {
  repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
  repositories {
    google()
    mavenCentral()
    maven {
      url = uri("https://androidx.dev/storage/compose-compiler/repository/")
    }
  }
}
rootProject.name = "MyApp"
include(":app")

참고

코틀린 최신버전에 대한 컴포즈 컴파일러 호환성 표를 참고했습니다.

https://androidx.dev/storage/compose-compiler/repository

 

정식버전 호환성 표 입니다.

https://developer.android.com/jetpack/androidx/releases/compose-kotlin?hl=en