티스토리 뷰

안드로이드 하위버전(21이전)에서 스마트폰에 다운로드 시 아래와 같은 에러를 볼때가 종종있다.


Error:The number of method references in a .dex file cannot exceed 64K.


Learn how to resolve this issue at 

https://developer.android.com/tools/building/multidex.html

:app:transformClassesWithDexForDebug FAILED

Error:Execution failed for task ':app:transformClassesWithDexForDebug'.

> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_111\bin\java.exe'' finished with non-zero exit value 2


친절하게 에러를 수정하는 방법이 나오지만 영문 버전이라...ㅎㅎ

빨강색으로 표시한 사이트로 이동하면 아주 친절하게 수정하는 방법이 한글로 나온다.


원인은 아래와 같다.

Android 플랫폼이 계속 성장함에 따라 Android 앱의 크기도 따라서 증가합니다. 앱과 이 애플리케이션이 참조하는 라이브러리의 크기가 일정 크기에 도달하면, 앱이 Android 앱 빌드 아키텍처의 제한에 도달했음을 나타내는 빌드 오류가 발생합니다. 


수정은 AndroidManifest.xml , build.gradle 두개의 파일을 수정해주면 된다.

build.gradle파일에서 빨강색으로 된 부분을 추가 후 Sync project with gradle files를 실행한다.

defaultConfig {
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
multiDexEnabled true
}
dependencies {
compile 'com.android.support:multidex:1.0.1'
}

AndroidManifest.xml파일에서도 빨강색 부분을 추가한다.
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:name="android.support.multidex.MultiDexApplication">
위의 2개 파일을 수정하면 스마트폰에 정상적으로 다운로드 됩니다.
저의 경우는 구글API를 사용해서 구글 지도를 사용하는 앱을 만들어 다운로드 하다가 에러가 발생했어요.