2

방금 ​​Android Studio 2.2로 프로젝트를 옮겼으며 apk을 생성 할 수 없습니다.Android Studio 2.2로 이동 한 후 DexIndexOverflowException

오류 : 실행은 작업 실패 ': 응용 프로그램 : transformClassesWithDexForRelease'

나는이 오류 메시지를 받았습니다.

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

이 오류를 제거하려면 어떻게해야합니까?

+0

Proguard의 축소 기능을 사용하고 있습니까? 그렇지 않은 경우 사용하도록 설정하면이 오류가 계속 발생합니까? – Michael

답변

1

프로젝트 컴파일이 새로운 클래스를 선언해야한다, 덱스 65536 방법까지 처리 할 수 ​​있습니다.

프로젝트 컴파일 65536 개 방법보다 이상이있다, 그래서 당신은

에서 그것을 해결하기 위해 https://developer.android.com/studio/build/multidex.html 더 나은 방법은 여기를보세요 더 덱스 파일에 코드를 분할 MultiDex을 활성화 종속 또는 을 개선해야 당신의 케이스.

3

프로젝트의 메소드 참조 수가 하나의 dex 파일에 존재할 수있는 최대 수인 65536 개 이상입니다. 이 경우, 다음 단계에서 입력 MultiDex의 응용 프로그램을 선언해야합니다 :

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

2가 defaultConfigs에서 multidex에서 사용 :

1- 앱 수준 build.gradle에 multidex 종속성을 추가 응용 프로그램 레벨 build.gradle :

android { 

defaultConfig { 
    ... 

    // Enabling multidex support. 
    multiDexEnabled true 
    } 
... 
} 

3- 응용 프로그램의 진입 점 역할을 할 것 MultidexApplication을 확장하는 새로운 클래스에서는 MyApplication을 정의합니다.

public class MyApplication extends MultidexApplication 

4 - 마지막으로, 덱스 파일을 생성 당신의 AndroidManifest.xml에

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="your.package.name"> 

<application 
    android:name=".path-to.MyApplication"> 
    ... 
</application> 
</manifest>