에러 배경
Execution failed for task ':domain:compileKotlin'.
> 'compileJava' task (current target is 1.8) and 'compileKotlin' 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 --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
멀티모듈 도입중 domain레이어를 Java, Kotlin Library로 만들었는데 compileJava와 compileKotlin의 버전 차이가 난다는 오류가 나왔다.
처음에는 domain의 빌드 파일에서 java가 1_7로 돼있길래 1_8로 바꿔줬는데도 위 오류가 계속 나왔다.
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
문제는 kotlin 쪽이다.
kotlinOptions {
jvmTarget = '1.8'
}
JDK 1.1버전부터는 1.를 붙이지않고 서브버전표시를 하는데 저 메시지에 따라 현재 버전인 17로 바꿔주면 된다.
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = '17'
}
이렇게 모든 빌드파일(build.gradle)의 버전을 다 맞춰 주니 무사히 빌드가 됐다.
멀티모듈을 쓴다면 도메인 모듈에서 이런 문제가 생길 수 있는데 그때도 버전을 맞춰주면 해결되는 오류다.
"댓글, 공감 버튼 한 번씩 누르고 가주시면 큰 힘이 됩니다"
반응형
'Android 🖥️ > 삽질⛏️' 카테고리의 다른 글
Safe args 사용하기 (0) | 2023.10.11 |
---|---|
Datastore 사용하기(Preferences DataStore) (0) | 2023.10.10 |
dialog의 background속성값이 코드에서 입력할 때 적용되는 이유 (0) | 2023.10.02 |
Progressbar 사용하기(feat. timer) (0) | 2023.10.02 |
Viewmodel 인스턴스 정의 방법 (0) | 2023.10.02 |