[유니티] 오류 사례 "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;
- 상황
- 기존 프로젝트에 GoogleMobileAds 패키지 추가 시 발생
- 오류 내용
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
댓글
댓글 쓰기