[Android]Execution failed for task ':app:transformClassesWithDexForDebug' 에러 해결하기
프로젝트를 빌드 하다 보면 Execution failed for task ':app:transformClassesWithDexForDebug'에러가 발생 될 때가 있습니다.
위 오류는 많은 원인에서 발생 하게 되는데 해당 원인 및 해결방안은 아래와 같습니다.
원인 1 :
중복된 클래스 파일 이름이 사용된 경우
해결방법 :
여러 라이브러리를 사용 하는 경우 종종 같은 클래스 파일이 사용 되는 경우 가 있습니다. 이럴때 중복된 클래스 파일 이름이 없도록 클래스 파일 명을 확인 해 주어야 합니다.
원인 2 :
캐시 메모리가 부족한 경우
해결방법 :
장시간 개발을 하다보면 Android Studio 내 캐시메모리가 지속적으로 쌓여 메모리가 부족할 때 해당 에러가 발생 될 수 있습니다.
Android Studio 상단 메뉴바에서 [File] - [Invalidate caches / Restart] - [Invalidate and Restart] 선택 후 캐시를 정리 해주시면 됩니다.
원인 3 :
내부 빌드/컴파일 진행중 꼬인 경우
해결방법 :
빌드/컴파일 중에 프로젝트가 꼬일 수 있습니다. 이럴때는 다시 빌드를 해주어야 합니다.
Android Studio 상단 메뉴바에서 [Build] - [Clean Project]로 프로젝트를 클린 한 후에 [Build] - [Rebuild Project]로 프로젝트를 다시 빌드 해주면 됩니다.
원인 4 :
시스템 자체에 메모리가 부족한 경우
해결방법 :
Android Studio 메모리가 아닌 PC 자체에 메모리가 부족 한 경우에도 해당 오류가 발생 될 수 있습니다.
작업 관리자를 열어 리소스가 많이 사용 하고 있는 응용 프로그램이나 서비스를 중지 해 주면 됩니다.
원인 5 :
프로젝트 내 메소드 개수가 65K를 초과한 경우
해결방법 :
이 오류에 가장 많은 원인이 바로 최대 메소드 추가 입니다. 개발시에 여러개의 라이브러리를 사용 하는 경우 사용된 메소드의 개수가 약 65,000개 넘는 경우 에러가 발생 되게 됩니다.
이럴 경우 App의 build.gradle(Module:app)에서 아래와 같이 추가 해주면 됩니다.
1.defaultConfig 안에 multiDexEnabled true 추가
2.dexOptions{ javaMaxHeapSize = "4g" } 추가
3.dependencies 안에 compile 'com.android.support:multidex:1.0.0' 추가
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | build.gradle(Module:app) android { ... defaultConfig { ... multiDexEnabled true } ... dexOptions{ javaMaxHeapSize = "4g" } } dependencies { ... compile 'com.android.support:multidex:1.0.0' } | cs |
Execution failed for task ':app:transformClassesWithDexForDebug' 에러는 대부분 위 해결방법으로 해결 하실 수 있습니다.
저같은 경우에는 이미 원인5에 해결방법처럼 되어 있는 상태일 때 원인2,4의 해결방법으로 수정 후 정상적으로 빌드가 되었습니다.