Learn to share,Share to learn

> Task :app:kaptGenerateStubsDebugKotlin FAILED 해결법 How to fix > Task :app:kaptGenerateStubsDebugKotlin FAILED 본문

그 외/기타

> Task :app:kaptGenerateStubsDebugKotlin FAILED 해결법 How to fix > Task :app:kaptGenerateStubsDebugKotlin FAILED

Rogue One 2023. 11. 28. 16:16

참 얼떨떨하다. 어제까지만 해도 잘 돌아가던 프로젝트가 갑자기 

 

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. Consider using JVM toolchain: https://kotl.in/gradle/jvm/toolchain * Try: > Run with --info or --debug option to get more log output. > Run with --scan to get full insights.

 

오류를 내뱉었다. compileDebugJavaWithJavac 작업이 Java 1.8을 대상으로 하고, kaptGenerateStubsDebugKotlin 작업이 Java 17을 대상으로 하는 것이 문제라는데 어제까지 잘 돌아가던게 왜!!!

시간도 좀 날렸지만 신기한 경험을 했다. 아는분이 똑같은 경험을 하시고 해결까지 하신 블로그를 발견했다. 이거참 얼떨떨하다..

 

https://velog.io/@mraz3068/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EB%B9%8C%EB%93%9C-%EA%B4%80%EB%A0%A8-%EC%98%A4%EB%A5%98JDK-version-17-1.8-11-%EB%AC%B4%ED%95%9C-%EB%B0%98%EB%B3%B5

 

GradleException: 'compileDebugJavaWithJavac' task (current target is 1.8) and 'kaptGenerateStubsDebugKotlin' task (current targe

깃허브에 학습용으로 참고할만한 프로젝트를 발견하여 클론해서 구동시켜보기 위해 클론을 한 뒤에 build을 해보았다. (AGP 버전이 8.0.0-rc01 이기 때문에 Preview 버전의 Android Studio 를 통해 클론을

velog.io

 

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

 

Unable to set kapt jvm target version : KT-55947

I do not see a way to set the kapt jvm target version in a Gradle build. In kotlin 1.8.0, kotlin.jvm.target.validation.mode=error by default, and I get a build error from Gradle 8.0-rc1: "Execution failed for task ':kaptGenerateStubsKotlin'." "ᐳ 'compile

youtrack.jetbrains.com

 

1) 우선 AGP 버전은 각각 7.4.2 버전으로 downgrade 해주었다 (각각 8.0.0 미만의 버전이면 어떤 버전이든 상관없다.)

2) 문제가 발생하는 각각의 모듈의 build.gradle.kts 에

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_17
        targetCompatibility = JavaVersion.VERSION_17
    }

    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_17.toString()
    }

해당 코드를 추가, jvmTarget 버전을 명시해주어 정상적으로 빌드에 성공할 수 있었다...

Android 모듈이 아닌, Kotlin or Java 라이브러리 모듈인 경우엔

java {
    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
}

 

로 해결봤다. 

 

----------(12/01 수정)-------------------------------------------

https://rogue-one.tistory.com/76

 

Dagger Hilt 적용(1)

지금 진행중인 리팩토링에서 이부분이 아주~ 곤란하다. 자꾸 에러가 발생하는데 이유를 못찾고있다.. 일단 장점은 사용하면서, 재사용성이 엄청나게 올라가는 경험을 했다. 예를들어, retrofit같

rogue-one.tistory.com

로 제대로 해결봤다

'그 외 > 기타' 카테고리의 다른 글

Android gradle Plugin 7.4.2와 Java 8 호환문제  (0) 2023.10.13