본문 바로가기
안드로이드

non-zero exit value Multidex Error

by 아카이sun 2016. 3. 8.

신나게 코딩하다 빌드하려하면 with non-zero exit value 가 포함된 에러가 나올 때가 있다.


Full Exception은 다음과 같다.


Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_65\bin\java.exe'' finished with non-zero exit value 2


안드로이드에서는 메서드마다 일련의 번호를 부여한다고 한다.

한개의 dex는 65535개를 지원한다.

즉 메서드의 수가 65535개가 넘어간다는 말이다.

라이브러리를 이것 저것 import시키다 보면 누구나 한번 쯤 맞이하게 되는 에러.


안드로이드에서는 MultiDex를 지원하며 이를 이용하면 해결된다.


우선 build.gradle의 dependencies에 다음을 추가

compile 'com.android.support:multidex:1.0.0'



defaultConfig에 multiDexEnabled를 true로 설정한다.

defaultConfig {
minSdkVersion 16
targetSdkVersion 22
versionName '1.0.4'
versionCode 5
multiDexEnabled true
}


또한 multiDex를 상속받는 Application을 구현한다.

public class ApplicationManager extends MultiDexApplication {
}...중략


마지막으로 manifests에 아래와 같이 새로 생성한 application path를 적어주면 끝!!


<application
android:name=".ApplicationManager"


댓글