이 문제는 안드로이드 스튜디오에서 프로젝트를 작성하여 Github에 공유 후, 다른 컴퓨터에서 동일한 프로젝트를 clone 후 빌드를 시도하다 발생한 에러를 해결하다 알게 되었습니다.
문제는 바로 gradle wrapper가 실행되지 않는 것이였는데요, 아래와 같이 gradlew 명령을 실행하면 GradleWrapperMain을 찾을 수 없다고 하면서 에러 메시지가 표시됩니다.
$ ./gradlew
Exception in thread "main" java.lang.NoClassDefFoundError: org/gradle/wrapper/GradleWrapperMain
Caused by: java.lang.ClassNotFoundException: org.gradle.wrapper.GradleWrapperMain
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: org.gradle.wrapper.GradleWrapperMain. Program will exit.
불과 몇 분 전 까지만 해도 멀쩡히 잘 빌드되던 프로젝트가, 삭제 후 다시 clone만 했을 뿐인데 빌드가 되지 않는다니....ㅠㅠ 순간 멘붕에 빠져 구글링을 해 보았지만 그닥 명쾌한 해답은 많이 없었고, gradle wrapper쪽에 문제가 있을 것이라는 몇몇 답변을 보게 되었습니다.
그래서 혹시나...하고 gradle wrapper 디렉토리를 확인한 결과.... gradle wrapper 실행 파일(gradle-wrapper.jar)이 없었습니다..........하아.......
정상적인 경우 아래와 같이 gradle/wrapper 디렉터리에 gradle-wrapper.jar 파일이 있었어야 하는데, 그 당시에는 이 파일이 빠져 있었더군요. 아마 Git에 파일을 추가할 때 빠져버렸나봅니다...ㅠㅠ
위와 같이 gradle wrapper가 누락되어 발생하는 문제는 단순히 gradle wrapper를 다시 만들어 주기만 하면 해결됩니다. 프로젝트 루트 경로에서 아래 명령어를 실행하면 gradle wrapper를 생성해줍니다. (단, 시스템에 gradle이 설치되어 있어야 함)
$ gradle wrap
'Troubleshooting > SDK / Tools' 카테고리의 다른 글
Android Studio를 사용하며 자주 겪는 Gradle 관련 오류 해결 방법 (3) | 2014.03.31 |
---|