Kotlin 프로젝트에서 build.gradle.kts를 열었을 때 모든 라인이 빨간 밑줄이 생긴 것에 대한 문제 해결입니다.

 

문제해결이 다 된 상태라 캡쳐를 하지 못한점은 아쉽지만 문제 해결과정에서 찾지 못한 방법이었고 어이없게 해결할 수 있었던 방법이기 때문에 뭘 해도 안된다 하시는 분들은 한번 확인 해보시는 것도 좋을 것 같습니다.

 

Unresolved reference: plugins

Cannot access script base class 'org.gradle.kotlin.dsl.KotlinBuildScript'. Check your module classpath for missing or conflicting dependencies

 

이런 오류가 발생.

IDE는 IntelliJ를 사용하고 있습니다.

이 오류를 해결하는 방법으로 대부분의 블로그에서는 File -> Invalidate caches를 눌러 Clear VCS Log caches and indexes와 Mark downloded shared indexes as exluded를 선택하고 INVALIDATE AND RESTART 버튼을 눌러 캐시 삭제와 재부팅을 수행하도록 권장하고 있습니다.

실제로 그렇게 해결하신 분들도 많은 것으로 보입니다.

 

하지만 이 방법으로 문제가 해결되지 않았고 직접 맥북의 /User/{username}/.gradle/caches를 직접 삭제하는 방법까지 수행해봤으나 아무런 변화도 없었습니다.

 

그래서 이리저리 방법을 알아보고 chatGPT에도 물어봤으나 이미 확인했던 비슷한 답변만 존재해서 답답하던 와중.

해당 프로젝트의 Application.kt 파일을 무심코 열어봤는데 상단에 오류가 떠있었습니다.

 

Kotlin runtime library and 4 other jars have an unsupported binary format

코틀린 런타임 라이브러리 및 4개 jar에 지원되지 않는 바이너리 형식이 있다는 내용.

 

그리고 옆에는 update plugin 버튼이 있었고 버튼을 눌러 update 해줬습니다.

여기서 kotlin Plugin을 설치하지 않은 상태도 아니었고 chatGPT가 내놓은 해답 중 하나가 kotlin plugin 설치를 확인하라는 것이었기 때문에 설치를 확인까지 했으나 업데이트를 확인하지 않은것이 문제였던 것 같습니다.

 

업데이트가 종료되고 나면 재부팅 안내 창이 뜰텐데 재부팅 해주고 다시 build.gradle.kts를 열어보면 그대로 빨간 밑줄이 있습니다.

다시 File -> Invalidate caches를 눌러 캐시 삭제 후 재부팅을 해주고 나니 빨간 밑줄이 사라지는 것을 확인할 수 있었습니다.

 

build.gradle.kts에 의존성을 추가하고 build 했을 때 build 탭에는 SUCCESS로 나오긴 하지만 

 

> Task :prepareKotlinBuildScriptModel UP-TO-DATE

Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/8.8/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

BUILD SUCCESSFUL in 1s

 

이렇게 gradle 버전이 문제라는 말만 나오지 플러그인에 대한 내용이 전혀 없어서 버전 문제 혹은 설정 문제일 것이라고 생각했고 실제 문제 해결에 대한 방법을 찾았을 때도 캐시 또는 버전 문제였는데 설마 Kotlin 플러그인 업데이트 문제일 것이라고는 생각도 못했습니다.

이번 문제는 운빨로 정말 우연히 해결하게 되었는데 눈에 보이는 코드만이 아니라 좀 더 폭 넓게 확인하는 습관을 들여야겠습니다 ㅠㅠ

+ Recent posts