Development Artist

[Flutter, Android, Issue] D8: Cannot fit requested classes in a single dex file (# methods: 84502 > 65536)com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: The number of method references in a .dex file cannot excee.. 본문

TroubleShooting/Flutter Issue

[Flutter, Android, Issue] D8: Cannot fit requested classes in a single dex file (# methods: 84502 > 65536)com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: The number of method references in a .dex file cannot excee..

JMcunst 2022. 1. 15. 11:42
728x90
반응형

이슈

1. 플러터를 안드로이드 기기에서 빌드시 다음과 같은 이슈 발생.


해결

1. android > app > build.gradle 파일에 defaultConfig 안에 multiDexEnabled true 를 써주고, android > app > build.gradle 파일에 dependencies 안에 implementation 'com.android.support:multidex:2.0.1' 를 써준다.

multiDexEnabled true
implementation 'com.android.support:multidex:2.0.1'


원인

1. 앱 및 앱이 참조하는 라이브러리는 DEX file에서 관리를 하는데, 앱 및 앱이 참조하는 라이브러리에서 메서드가 65,536개를 초과하면 앱이 Android 빌드 아키텍처의 제한에 도달했음을 알리는 빌드 오류가 발생한다. DEX file 의 메소드들을 포함하는 부분은 16bit로, 2^16 인 65,536 갯수가 최대이다.

2. 해당 오류는 2^16을 넘어선 메소드 레퍼런스들을 참조해야하는 상황에서는 멀티덱스가 필요하고, Sdk version 21 이상에서는 멀티덱스를 지원을 한다. 하지만, 그 이하에서는 다음과 같이 멀티덱스 라이브러리를 추가해 줘야 한다. 

728x90
반응형
Comments