Androidで開発をしていて「Current dex file has more than one class in it.」とログ表示が出た時の対処法について紹介していきます。
まず、そもそもこのメッセージはどういうものかというと、dexファイルに複数のクラスが含まれているというもの。このメッセージが出ていてもアプリ自体は動きますが、アプリが操作できるまでに時間がかかったりすることがあります。
出た時の対処法は?
メッセージが出ときの対処法は下記の通りです。
①不要なファイル、ソースコードを削除する
不要な外部ライブラリ等があれば削除するために、build.gradle内の不要なimplementsの行は削除します。特にデフォルトで入ってる使ってないライブラリは削除しましょう。そのほか、不要なソースコードの類は削除しておきましょう。
②プロジェクトをCleanする
「Build」の中の「Clean Project」を実行します。これが結構大事。
③リビルドする
最後に「Rebuild」を行います。リビルドだけでなく、ついでに「invalidate caches/restart」も行っておきましょう。
multidex等について詳しく知りたい方は「64K を超えるメソッドを使用するアプリ向けに multidex を有効化する|Android Developer」を参考に見てみてください。
関連する記事、サイトも下記に参考に乗せておきます。リンク形式
参考:メソッドが64000個を超えているアプリでの設定|Android Studio ドキュメント 日本語訳
参考:In what situation would multiple .dex files be created in Android .apk file? | stack overflow
参考:Multidex and the Dex Method Limit | SO Documentation
参考:Multidex | Android Developer