先日、UnityでAndroidアプリをビルドしようとしたところこのようなエラーが出てビルドできませんでした。
Unable to convert classes into dex format. See the Console for details.
iOSでは普通にビルドできていたので「これはおかしい」と思い、解決策を模索してみました。
経緯
私は、UnityでiOSとAndroidの両方でアプリをリリースしていたのですが、テストはiOSで行っていました。
ですので、リリースの最終調整として見つかったエラーが今回紹介するものです。
ちなみに、google翻訳さんではこのように翻訳されました。
DEXフォーマットにクラスを変換することができません。詳細については、コンソールを参照してください。
状態
ビルドができないだけでUnity内では実行することはできました。
ビルドした場合、すぐにエラーを吐くわけではなく少しビルドが進んでからのエラーでした。
どうやら、Androidのみのエラーのようです。
原因と解決方法
原因も解決方法も意外とすぐに見つけることができました。
さらに対処法もとても簡単だったので、さっそく見ていきましょう。
原因
今回のエラーはAndroid関係に原因があることはわかったので、それらしいところを探してみました。
すると、nend関係のファイルがそれぞれ2つずつありました。
おそらく、iOSのアイコン広告が廃止になった時、iPhoneのみアップデートしたので見落としていたようです。
解決方法
単純に古い方のファイルを削除すれば良いだけでした。
Unable to convert classes into dex format. See the Console for details.
このエラーの内容が全て今回と同じような状況とは限らないのですが、もし同じようなエラーが発生したという人は見直してみてもいいかもしれませんね。
まとめ
AndroidとiOSを両方作っていると、片方のバグを見落とすことが多くあるので、Unityになんらかの変更をした時はバグがないか探した方がよさそうです。
そして、リジェクトされないすてきなアプリを作っていきましょう。
ではまた。