개요
사실 이 글을 작성하게 된 계기는, 어떤 오류를 해결하기 위해 온종일을 삽질하였는데 이에 대한 해결책을 기록하기 위해서이다. 결론적으로 해결책은 본 포스트의 제목처럼 캐시 삭제였다. 그런데 이 캐시 삭제에도 많은 방법이 있는데 가장 확실한 방법을 알아보자.
문제 발생
Cannot access ‘java.lang.Object’ which is a subtype of … Check your module classpath for missing or conflicting dependencies.
Android Studio를 Dolphin으로 업그레이드한 뒤에, 위 사진과 같이 모든 gradle 파일에서 다음과 같이 Kotlin DSL을 인식하지 못하는 오류가 뿜어져나왔다. 특정 프로젝트에서만 발생하는 것이 아니라, 모든 프로젝트에서 동일하게 발생했다. 온갖 구글링을 해보았지만 프로젝트 설정에서 jdk
위치를 재설정하거나 Clean Project를 수행하라는 해결책밖에 없었다. 물론 jdk의 위치는 그대로였고 Clean Project는 아무런 효과가 없었다. (지금까지 Clean Project로 해결되는 오류는 단 하나도 못봤다..)
내가 시도해 본 해결책들은 다음과 같다.
- Clean Project
- JDK 경로 재설정
- JDK 삭제 후 재설치
- Invalidate Caches
- 프로젝트 내 .idea .gradle 폴더 삭제
- Android Studio 삭제 후 재설치
~/.gradle/caches
삭제
위 방법들이 모두 효과가 없었다. 정말 정신이 나갈 뻔했다…
확실한 캐시 삭제
아래는 위 오류마저 해결한 캐시 삭제 법이다.
~/.gradle/caches
삭제~/.gradle/daemon
삭제~/.gradle/wrapper
삭제- 프로젝트 내
.idea
폴더 삭제 - 프로젝트 내
.gradle
폴더 삭제 - 프로젝트를 열고 Invalidate caches 수행
이때, ~/.gradle
에 존재하는 caches, daemon, wrapper 이 3가지 폴더는 파일 수가 굉장히 많고 용량도 매우 크다. 필자는 약 20만개의 파일에 15GB 정도가 나왔다. 따라서 빠른 삭제를 위해 휴지통으로 보내지 말고 영구 삭제를 하면 시간을 훨씬 절약할 수 있다.
필자와 같은 문제를 겪고 있다면, 위 방법을 순서대로 시도해보는 것을 추천한다. 덤으로 캐시 삭제인만큼 상당한 크기의 디스크 저장 공간을 확보해준다.