65K 메서드 제한 해결하기

By | December 2, 2014

안드로이드 앱을 작성하다 보면 여러 라이브러리를 사용하기 때문에 메서드 개수가 65K를 넘을 경우가 많습니다. 이 때는 multi dex 라는 기법으로 앱을 패키징하면 문제를 해결할 수 있습니다. 아래처럼 gradle 을 작성해 주시면 됩니다.

위 한줄의 설정을 위해서 아래와 같은 환경 설정이 필요합니다.

  • AndroidStudio 9.x 이상( Android Stduio 1.0 RC2 를 카나리 채널에서 업데이트 받으세요 )
  • Gradel 2.1 이상
  • Android Build Took 2.1 이상

그리고 Application 객체를 MultiDexApplication 로 부터 확장해야 합니다. 그리고 AndroidManifest.xml 의 Application 태그에 android:name 속성을 설정합니다.

만약에 커스텀 Application 클래스를 사용하지 않는다면 AndroidManifest.xml 의 Application 태그에 아래처럼 작성해야 합니다.

그리고 MultiDexApplication 을 사용하기 위해서 com.android.support:multidex:1.0.0 모튤이 필요합니다.

이렇게 하면 메서드 65K 제한 문제를 해결할 수 있습니다

Share on FacebookTweet about this on TwitterShare on Google+Share on RedditEmail this to someone
  • Pingback: Android studio의 Gradle 빌드가 너무나도 느려졌을 경우 | Fix Fix Fixxx()

  • 유명식

    65k제한을 풀게되면 컴파일 속도가 너무 느린데 혹시 빠르게 하시는법 해결하셨나요?

    • 안녕하세요! 개발하시는 앱의 최소버전에 따라 빌드 속도에 영향을 줄 수 있습니다. 개발하시는 앱의 최소 버전이 롤리팝 이후라면 개발용 앱과 프로덕션 앱 두 빌드에서 ART를 사용할 수 있기에 개발 속도가 빨라지구요. 그렇지 않다면 gradle에서 개발용 앱만 최소버전을 롤리팝이상으로 잡아서 개발할 때에만 빌드 속도를 빠르게 할 수 있습니다. 후자의 경우를 얘기드리면, 아래처럼

      android {
      compileSdkVersion 23
      buildToolsVersion “23.0.3”

      defaultConfig {
      applicationId “your.app.package.name”
      multiDexEnabled true
      targetSdkVersion 23
      versionCode 1
      versionName “0.0.1”
      }

      productFlavors {
      dev {
      minSdkVersion 23
      }

      prod {
      minSdkVersion 14
      }
      }
      }

      productFlavors 를 작성해서 사용하시면 됩니다. 좀 더 자세한 내용은 안드로이드 공식 문서 “https://developer.android.com/studio/build/multidex.html#dev-build” 에서 읽을 수 있습니다.