개발자 블로그

Unknown Kotlin JVM target: 21 빌드 오류 해결 본문

프로그래밍/안드로이드

Unknown Kotlin JVM target: 21 빌드 오류 해결

로이드.Roid 2025. 3. 16. 08:36
반응형

안드로이드 스튜디오 버전을 업데이트 한 뒤로 갑자기 빌드가 되지 않는 오류가 발생했다. 

 

예전에도 IDE 업데이트를 하고나면 꼭 한 두가지 문제들이 발생해서 업데이트를 신중히 하는 편인데, 그나마 최근에는 많이 안정화가 된 것 같더니 나를 또 이렇게 괴롭히네..

빌드 오류 메시지는 아래와 같다.

* What went wrong:
Execution failed for task ':app:kaptGenerateStubsDebugKotlin'.
> Error while evaluating property 'compilerOptions.jvmTarget' of task ':app:kaptGenerateStubsDebugKotlin'.
   > Failed to calculate the value of property 'jvmTarget'.
      > Unknown Kotlin JVM target: 21

 

좀 특이한 점이라고 한다면.. 프로젝트마다 해결 방법이 달랐다. 어떤건 build.gradle 파일에 스크립트 몇 줄 넣어서 해결 된 경우도 있었는데, 또 다른 프로젝트는 같은 방법으로는 해결이 안되어서 코틀린 버전을 변경해서 해결했었다. 각각 순서대로 설명을 하겠다.

 

우선 첫 번째 해결 방법. jvmTarget 스크립트를 추가하니깐 바로 해결이 되었다.

    kotlinOptions {
        jvmTarget = '17'
    }

모듈 수준의 build.gradle 파일의 android 블록 내에 jvmTarget을 지정해주니깐 문제가 해결 되었다. 참고로 jcenter가 deprecated 되면서 기존에 사용하던 오픈소스 라이브러리를 프로젝트에 import해서 사용하는 경우가 있는데, 이런 경우에는 해당 라이브러리에도 동일하게 위 스크립트를 추가해줘야 된다.

 

그리고 두 번째 방법. 이 프로젝트에는 이미 jvmTarget 지정 스크립트가 있었다. 한참을 삽질했지만 결론만 말하면 코틀린 버전을 업데이트 하니깐 문제가 해결 되었다.

기존에 사용하던 코틀린 버전은 

ext.kotlin_version = '1.8.22'

이었다. 프로젝트 수준의 build.gradle 파일에 코트린 버전이 나와있는데, 이걸 현 시점 최신 스테이블 릴리즈 버전(2.0.21)으로 업데이트 해주었다.

ext.kotlin_version = '2.0.21'

그리고 jvmTarget 스크립트는 삭제했다. jvmTarget을 제거하면 Kotlin 컴파일러는 기본 JVM 버전을 사용한다고 한다.

 

쓰고나니 너무 간단해서 좀 허탈하네..-_-;; 나의 삽질이 누군가에게는 도움이 되길 바라며..

 

반응형
Comments