1. 원인

Android project를 빌드하게 되면 VM에서 돌아가게된 byte code로 변환하게 되는데 이를 .dex에 표현하게 된다. 그런데 .dex는 64KB limitation이 있어서 그 크기를 넘게 되면 위와 같은 에러가 발생하게 되는 것이다.


2. 해결

이 문제를 해결하기 위해서는 multidex를 사용할 수 있도록 multidex support library를 사용해야 한다. 하지만 구글 가이드를 보면 이 문제를 해결하기 위해서는 2가지 방법이 있는데 그 방법의 기준이 Android 5.0(Lollipop)이다. 그러나 대게는 Jelly been도 지원을 하는 경우가 많기 때문에 'Multidex support prior to Android 5.0'이 해결책이 될 것이다.



- Multidex support library를 적용하는 방법


아래 항목을 build.gradle에 삽입한다.

android {
...
defaultConfig {
...
//Enabling multidex support
multiDexEnabled true

}

}


dependencies {

...

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

}


래 항목을 AndroidManifast.xml에 삽입한다.

<application
...
android:name="android.support.multidex.MultiDexApplication">

※ 위와 같이 했는데 Package가 인식되지 않는다면, [File > Project Structure]로 가서 com.android.support.multidex가 포함 되었는지 확인해보고 포함되지 않았다면 추가한다.

※ 그래도 안되면 [Build > Rebuild Project]를 눌러본다.