[Android] 에러 해결 - GradleException: 'compileDebugJavaWithJavac' task (current target is 1.8) and 'kaptGenerateStubsDebugKotlin' task (current target is 17 )

김준영·2024년 3월 28일
0

Android

목록 보기
5/17
post-thumbnail

에러 원인

보통 이런 오류는 gradle 설정 오류입니다 이런 오류는 마주치면 삽질하기 굉장히 쉽습니다
android 개발을 하면서 gradle에 대해 공부하거나 깊게 다루는 기회가 흔치 않기 때문이라 생각합니다!

아래는 제가 적용한 해결법입니다. (참고로 AGP버전은 8.3입니다)

[해결법 1 - jdk 버전 변경]

[해결법 2 - toolchain 이용]
주의 - Java or Kotlin Library 탬플릿 모듈에 에러가 발생했을 때 해결법입니다.

이 해결법은 제가 멀티모듈을 적용해면서
순수 코틀린, 자바 계층인 domain 모듈에서 마주쳤던 에러입니다
해당 코드를 통해 자바 버전을 명시해주었습니다

@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed
plugins {
    id("java-library")
    alias(libs.plugins.org.jetbrains.kotlin.jvm)
}

java {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
    toolchain {
        languageVersion.set(JavaLanguageVersion.of(8))
    }
}

[해결법 3 - 버전 수정]
프로젝트 수준 gradle에서 org.jetbrains.kotlin.android 버전을 1.8.10 -> 1.9.0 으로 변경해줬습니다.

plugins {
    id("com.android.application") version "8.1.2" apply false
    id("org.jetbrains.kotlin.android") version "1.9.0" apply false
    alias(libs.plugins.com.android.library) apply false
    alias(libs.plugins.org.jetbrains.kotlin.jvm) apply false
    alias(libs.plugins.com.google.dagger.hilt.android) apply false
}

회고

(...)
compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_7
        targetCompatibility = JavaVersion.VERSION_1_7
    }
    kotlinOptions {
        jvmTarget = "1.7"
    }
(...)

사실 해당 에러는 1_7로 다운그레이드 시켜주면 웬만해선 문제없이 컴파일 될 문제긴 합니다..
하지만 잠깐의 해결책이고 언젠간 또 마주칠 에러입니다
hilt가 자바 8을 사용한다고 하기도 했구, 다른 라이브러리를 사용할때 자바8을 사용하는게 종종 보여서.. 저도 미루고 미루다 몇시간 삽질하면서 해결했네요ㅠㅠ

profile
Android, Flutter를 공부하고 있습니다🧐

0개의 댓글

관련 채용 정보