프로젝트 컴파일 시 아래와 같은 오류메세지가 나면서 빌드가 되지 않을때가 있습니다. 저 같은 경우는 외부 SDK를 연동하는 과정에서 로드하는 라이브러리가 많다보니 메모리가 충족되지 않아 발생하는 문제였습니다.
expiring daemon because jvm heap space is exhausted
Execution failed for task ':app:mergeExtDexDebug'
해결방법 1
android {
...
defaultConfig {
multiDexEnabled true
...
}
}
첫 번째로 해야할 일은 build.gradle에 multiDexEnabled true로 설정해 줍니다.
packagingOptions {
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/ASL2.0'
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/LGPL2.1'
}
두 번째도 마찬가지로 build.gradle에 packagingOptions 소스를 추가해 주세요.
해결방법 2
위 방법을 했는데도 똑같은 오류가 반복된다면 메모리 heap size를 늘려줘야 합니다.
AndroidManifest.xml 파일에 aplication에 아래 코드를 입력해 줍니다.
android:largeHeap="true"
다음으로 gradle.properties 파일에 아래 코드를 입력해 줍니다.
org.gradle.jvmargs=-Xmx4096M
저는 해결방법 2 코드 수정 후 빌드하여 해결하였습니다.
반응형
그리드형