Prosto

유니티 Build Error - Unable to convert classes into dex format. See the Console for details. 본문

Programing/Unity 3D

유니티 Build Error - Unable to convert classes into dex format. See the Console for details.

Prosto 2017. 6. 7. 23:04


안녕하세요.


유니티 빌드 시 발생할 수 있는 에러,

 Unable to convert classes into dex format. See the Console for details.

에러에 대한 해결 방법을 포스팅합니다.


콘솔에 찍히는 에러 로그는

CommandInvokationFailure : Unable to convert classes into dex format.

C:\Program Files/Java/jdk1.8.0_111\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir="C:\Users\UserName\AppData\Local\Android\android-sdk\tools" -Dfile.encoding=UTF8 -jar

 ~~~같은 식으로 찍힙니다.


이 에러는 일반적으로, 동일한(같은) 기능의 jar(aar) 파일이 두 개 들어가있는 경우 발생하는 에러입니다.

(다른 경우도 있을 수 있겠지만 대표적인 경우가 이러한 경우입니다.)


 플러그인(Plugins) 폴더 하위에 있는 것들 중 중복되는 게 있는지 확인해보시면 좋겠네요.


빌드 시 실패한 모습

Build failure

 Unable to convert classes into dex format. See the Console for details.


그리고 Console에서 나오는 오류 내용



이 오류에  대한 해결 방법 중 첫 번째.


Google Play Game Services (GPGS)의 경우는

여러 버전이 들어간 경우에 발생할 수 있습니다.

예를 들면

supprot-v4-24.0.0도 있고,

support-v7-24.0.0도 있는 경우나


play-service-ads-10.0.1과 같은 play-service-abcd 같은 게 중복적으로 있는 경우 문제가 됩니다.


중복적으로 있다면, 하나만 남겨둬야 합니다.

이와 마찬가지로 참조한 플러그인(Plugins 폴더 하위)

중 .jar이나 .aar 파일들 중 중복되는 게 있는지 확인해보셔야 합니다.


(같은 플랫폼에서 지원하는 경우 aar, jar이 중복되는 경우가 있습니다. 예를 들면 GPGS와 Everyplay라든지, admob이라든지.. 모두 google인..)



위의 내용이 일반적인 오류 해결 방법이고,

이 외에 이번에 같은 오류를 다른 케이스로 겪은 내용으로는

맥에서 플러그인을 넣고 테스트 중 임시파일이 생성된 경우입니다.


(이번에 애드몹(admob)을 새로 추가하며 확인 + 맥에서 빌드 후 다시 윈도우에서 안드로이드 apk를 빌드할 때 오류 발생)


윈도우에서 확인 시 숨김 파일로 되어있는데 이렇게 임시파일이 존재해도

빌드 시 같은 파일이 존재하여 제대로 빌드가 안 되는 것을 확인했습니다.


임시 파일들을 모두 지워줍니다.

(사실 궁극적으로는 .jar이나 .aar의 임시파일을 삭제해야 겠지만, 모두 지워줍니다.)



위에서 임시파일들을 제거하면 이렇게 파일들이 구성되겠죠?



Plugins 하위에 생성됐던 임시파일들은 모두 지워줍니다.



GoogleMobileAdsPlugin 하위에도 존재하네요.

이 임시파일들도 지워줍니다.



그리고 여기가 가장 중요하겠지만,

GoogleMobileAdsPlugin 하위 libs 폴더에

unity-plugin-library.jar 파일이 임시파일로 생성됐죠?

아마도 이 파일이 빌드할 때 중복으로 인식되지 않았을지 싶습니다.


위와 마찬가지로 제거해줍니다.



(그 외에 다른 임시파일들이 있다면 제거해주세요. 위에 보셨던 것처럼 언더바(_) + 같은 이름으로 되어있습니다.)



그리고 다시 빌드해보니

빌드 중 문제가 되었던

dex format. 부분이 정상적으로 지나갔습니다.

(빌드도 성공적으로 완료됐습니다만 사진을 안 찍었네요.)



지금까지 위와 같은 오류를 봤을 때는 위에서 말씀 드린 첫 번째의 경우가 대부분이었고,

이번에 Mac에서 빌드한 후 Windows로 옮겨오니 설명한 것과 같은 오류가 발생했습니다.


같은 문제가 발생하신다면 천천히 확인해보시고 해결되신다면 좋겠네요.

(만약 안 된다면 역시 구글링을 해보셔야 하지 않을지...)


위와 같은 오류로 안 되던 분들께 도움이 되었으면 좋겠습니다.

Comments