org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during IR lowering
File being compiled: /Users/yijihun/AndroidStudioProjects/KakaoMediaSearch/core/ui/src/main/java/com/kenshi/ui/components/LoadingWheel.kt
The root cause java.lang.RuntimeException was thrown at: org.jetbrains.kotlin.backend.jvm.codegen.FunctionCodegen.generate(FunctionCodegen.kt:47)
새로운 모듈을 생성하여 해당 모듈에 Composable 함수를 생성하고, 해당 함수의 preview 를 확인하기 위해 preview code 를 작성한 뒤에 동작 시켜보았는데 다음과 같은 에러가 발생하였다.
package com.kenshi.ui.components
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.size
import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
@Composable
fun LoadingWheel() {
Box(modifier = Modifier.fillMaxSize()) {
CircularProgressIndicator(
modifier = Modifier
.align(Alignment.Center)
.size(30.dp)
)
}
}
@Preview
@Composable
fun LoadingWheelPreview() {
LoadingWheel()
}
stackOverflow 에 검색 결과들을 확인해보았으나, 만족스러운 답변을 찾지 못하여, 고민을 하였는데
원인은 다음과 같았다.
buildFeatures {
compose = true
}
해당 모듈에 compose를 활성화 시켜주지 않았던 것이었다..!
새로운 모듈을 생성했을 경우 다른 라이브러리 의존성은 다 추가했어도 compose 를 활성화 해주지 않으면 저런 Backend internal error 가 뜬다는 것을 알게되었다.
고치고 나서 보면 굉장히 기초적인 에러인것 같지만, 처음 보는 에러로 당황하시는 분들 위해 정리 해보았다.