SW-Marastro / MyKkumi-Android

[Android] 마이꾸미 | 템빨 취미 및 제품 정보 공유 서비스 | 💻 SW Maestro 15th
7 stars 0 forks source link

[ERROR] org.gradle.api.GradleException: 'compileDebugJavaWithJavac' task (current target is 1.8) and 'kaptGenerateStubsDebugKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version. #4

Closed jung0115 closed 1 month ago

jung0115 commented 2 months ago

어떤 버그인가요?

image



Execution failed for task ':app:kaptGenerateStubsDebugKotlin'.

'compileDebugJavaWithJavac' task (current target is 1.8) and 'kaptGenerateStubsDebugKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version.

어떤 상황에서 발생한 버그인가요?

gradle에 아래 코드 추가 시 발생. kotlin-kapt 플러그인 사용 시도 과정에서 버그.

plugins {
    ...
    id 'kotlin-kapt'
}

예상 결과

JDK 버전을 변경하면 해결될 것으로 예상됨

참고할만한 자료(선택)

아래에 코멘트로 추가

jung0115 commented 2 months ago

같은 사례 https://velog.io/@mraz3068/GradleException-compileDebugJavaWithJavac-task-current-target-is-1.8-and-kaptGenerateStubsDebugKotlin-task-current-target-is-17 ➡️ JDK 버전을 JAVA 1.8로 바꿔봤지만 다른 오류가 발생했다는 내용 ➡️ AGP 버전을 7.4.2로 downgrade하고, gradle에서 jvmTarget 버전을 17로 변경하여 해결했다고 함

https://stackoverflow.com/questions/75480173/android-studio-build-error-compiledebugjavawithjavac-task-current-target-is-1 ➡️ gradle에서 jvmTarget 버전을 17로 바꾸라는 솔루션 제시

jung0115 commented 2 months ago

참고 https://youtrack.jetbrains.com/issue/KT-55947/Unable-to-set-kapt-jvm-target-version#focus=Comments-27-6805028.0-0

jung0115 commented 2 months ago
image

위 링크 접속했을 때 나오는 내용

https://kotlinlang.org/docs/gradle-configure-project.html#gradle-java-toolchains-support

image image

jung0115 commented 2 months ago
plugins {
    ...
    id 'kotlin-kapt'
}

다른 프로젝트에 실험해본 결과 위 라인을 추가했을 때 에러가 발생함. kotlin-kapt 플러그인에 대해 알아보자

jung0115 commented 2 months ago

공식 문서 https://kotlinlang.org/docs/kapt.html#use-in-gradle

jung0115 commented 2 months ago

kotlin kapt는 jdk16+와 호환되지 않는다는 글 발견 https://zave7.github.io/kotlin/kotlin-kapt/

현재 JDK 버전: 17.0.6

image
jung0115 commented 2 months ago

그렇다면 JDK 버전을 어떻게 설정해야 하는가?

16으로 바꿔본 결과

image

1.8로 바꿔본 결과

image
jung0115 commented 2 months ago
  1. JDK 버전 17을 유지하고 gradle에서 jvmTarget 버전을 17로 변경하는 방법
  2. kotlin-kapt를 사용할 수 있는 JDK 버전 찾기? -> 다른 에러도 나지 않는

=> 1번 말고 성공한 방법을 못 찾겠어서 1번으로 시도

jung0115 commented 2 months ago
image

이렇게 바꿔주니 정상 동작. 그 이유를 이해해보자

jung0115 commented 2 months ago

찾아보니 Kotlin Compiler > jvmTarget은 1.8

image