flutter プロジェクトに cloud_firestore を追加するとエラー発生
64K問題
flutter で用意したプロジェクトより Firestore の Cloud Database を利用するため、 pubspec.yaml に cloud_firestore を追加します。その後、アプリを実行しようとすると次のようなエラーが発生することがあります。
D8: Cannot fit requested classes in a single dex file (# methods: 82189 > 65536) com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: The number of method references in a .dex file cannot exceed 64K.
これは64K問題と呼ばれているもので、単一のDEXより参照できるメソッドが 65536 個に制限されているものです。上記のエラー例であれば、 82189 個のメソッドが存在するためエラーとなっています。
解決方法
解決方法は簡単で、 android/app/build.gradle に65536を超えて参照できる設定を記述するだけです。
具体的には「multiDexEnabled true」を下記の位置に追記します。
android/app/build.gradle
android { : defaultConfig { : multiDexEnabled true } : }
これで64K問題は解消できるでしょう。
まとめ
Firebase の Cloud Database は便利ですのでよく利用しますが、毎度設定を忘れてこのエラーに出会います。最初はビックリしましたが、今はもう慣れっこです。。。落ち着いて設定を変更してください。
TKS2では、 flutter や Firebase Cloud Database などを利用したプロジェクトに対応することができます。もしお困りのときはぜひお声がけください。