[Unity] Gradle build failed 오류 대응 - DexArchiveMergerException

Posted by Dev Park
2019. 7. 16. 06:22 Unity

 

유니티 빌드 시 나오는 오류 중 

java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:

오류에 대한 대응 방법입니다. 

 

빌드 시 위와 같은 오류 메시지와 함께 빌드가 되지 않습니다. 

 

위 오류는 Unity Ads 와 Unity Monetization (Unity Analytics)설정 시 발생되는 오류로 새로 만든 프로젝트가 앞에 말한 두가지 설정 후에 오류가 난다면 

Player -> Project Settings -> Publishing Settings -> Minify -> Release 를 Gradle <Experimental> 로 변경해주면 됩니다. 

 

 

하지만 기존의 구버전 애드몹과 애즈 등을 사용 중에 새롭게 위와 같은 오류가 발생한다면 위의 방법으로는 해결이되지 않고 위의 방법을 적용하면 새로운 또 다른 오류가 발생합니다. 

 

이 경우에는 위의 방법말고 아래의 방법으로 대응해야 합니다. 

 

1. 프로젝트에서 GoogleMobileAds 삭제

2. 프로젝트에서 PlayServicesResolver 삭제

3. Plugins 폴더에 구 버전의 유니티 애즈가 있다면 삭제 

4. 혹시 Package Manager 에 Advertisement가 설치되어 있다면 삭제 

5. GoogleMobileAds.unitypackage 를 새롭게 설치 합니다.

(최신 버전 사용. 저는 Google Mobile Ads Unity Plugin v3.17 을 사용했습니다.)

 

위 5가지를 확인 후 빌드를 하면 정상적으로 빌드가 됩니다.