Android/Android관련 이것 저것..

안드로이드 multidex 문제 해결하기

봄석 2019. 2. 1. 16:51

안드로이드 multidex 문제 해결하기


안드로이드에서 앱 개발을 하다 규모가 커지게 되면 코드도 많아지고 라이브러리도 많아지게 됩니다.

이럴때 빌드시 오류가 발생하게 됩니다. 


  trouble writing output:

  Too many field references: 131000; max is 65536.

  You may try using --multi-dex option.


이 오류는 65536(64K)개 이상의 함수(Method)를 초과할 경우에 발생 합니다. 안드로이드에서는 JAVA의 class 를 사용하지 않고 class -> dex로 변환하여 사용하고 있습니다. 즉, java에서는 MainActivity.java를 컴파일 하면 MainActivity.class 생성되는데 이를 다시 MainActivity.dex 파일로 변환하게 됩니다.

dex는 Dalvik Executable로 안드로이드 달빅 가상 머신 (DVM)에서 실행되는 포맷입니다.


dex 파일은 함수를 64K를 초과할 수 없습니다. 이를 해결위해 Multidex 개념이 나오게 된것입니다.  

Multidex는 64K 메소드가 넘은 dex파일을 여러개로 쪼개주고 쪼개진 dex를 읽을 수 있도록 해줍니다



해결하기 

안드로이드 공식 문서 ->https://developer.android.com/studio/build/multidex?hl=ko