脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

UnityでAndroidアプリのBuild時に"Unable to convert classes into dex format. See the Console for details"が出た場合

Unityでandoridアプリをbuildする時に以下のようエラーが出てBuildが失敗することがあります。

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

これだけでは原因はわかりませんが、コンソールの方により詳細なエラーメッセージが出ています。
私の場合は以下のようなエラーが出てきました

stderr[
  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/facebook/androidcompat/AndroidCompat;
  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/facebook/sign/lib/FBSignSigner;
  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/facebook/sign/lib/FBSignVerify;
  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/oculus/aidl/OVRServiceInterface;
  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/oculus/aidl/OVRServiceInterface$Stub;
  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/oculus/aidl/OVRServiceInterface$Stub$Proxy;
  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/oculus/aidl/RemoteConstants;
  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/oculus/aidl/RemoteConstants$EntitlementResult;
  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/oculus/appmanager/signature/VRPackageVerifier;

UNEXPECTED TOP-LEVEL EXCEPTION:
  java.lang.RuntimeException: Translation has been interrupted
  .
  .
  .

ここで原因となっているのは

java.lang.IllegalArgumentException: already added: ********************;

の部分で、これはライブラリなどが重複することによって、Build時に同じクラス名のクラスをbuildしようとして失敗していることを表します

この場合は必要のないライブラリをdeleteしてやれば問題なくBuildできるようになります