[유니티] 오류 사례 "CommandInvokationFailure: Unable to convert classes into dex format."

유니티 라이브러리 충돌에 의한 빌드 에러.


  •  상황
  • 오류 내용


CommandInvokationFailure: Unable to convert classes into dex format.
C:/Android_SDK/Java/Java/jdk1.8.0_111\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir="C:/Android_SDK/Android/sdk\tools" -Dfile.encoding=UTF8 -jar "C:\Program Files\Unity551p4\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar" -

stderr[
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/AnimRes;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/AnimatorRes;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/AnyRes;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/ArrayRes;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/AttrRes;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/BinderThread;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/BoolRes;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/CallSuper;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/CheckResult;


  • 원인 
    • 라이브러리 중복빌드에 대한 오류
    • FacebookSDK와 GoogleMobileAds에서 "...android.support.jar(aar)" 파일이 중복 되어 있는 것을 확인





  • 해결
    • 구버전 라이브러리 사용 제한(삭제도 가능함)
    • 해당 파일을 선택한 상태에서 Inspector창에서 "Android" 체크 해제
    • 위 파일에 대해선 파일명이 각각 다를 수 있다는 상황에서 파일을 찾아야 함.
      • 위의 경우도 
        • 페이스북, support-annotations-23.4.0.jar
        • 애드몹, com.android.support.support-annotations-25.2.0.jar



댓글

이 블로그의 인기 게시물

[유니티] 오류 사례 "Moving file failed", "Temp"

[유니티 사례] 비주얼 스튜디오(Visual Studio) 실행 오류

[윈도우] 레지스트리를 이용한 단축키 생성