はじめに

FlutterとFirebaseの相性がいいのでFlutter製アプリにFirebaseを導入する人は多いと思います。Firestoreというデータストアを使いたいという人も多いでしょう。僕もその1人です。

この記事ではFlutterにFirebaseを導入した際に発生したエラーの解消方法をまとめます。(注意: Androidアプリ用の解消方法のまとめです

環境

  • MacOS BigSur 11.4
  • Flutter 2.5.2
  • Dart 2.14.3
  • cloud_firestore 2.5.3

前提

Flutter

やったこと

  • FlutterアプリにFirebase Firestoreのライブラリ cloud_firestoreを導入
$ flutter pub add cloud_firestore
  • Android実機で挙動確認するためにVS Codeの Run and Debugでアプリ起動(flutter runと同義)

エラー内容

発生したエラーは下記です。

D8: Cannot fit requested classes in a single dex file

D8: Cannot fit requested classes in a single dex file (# methods: 96175 > 65536) com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: The number of method references in a .dex file cannot exceed 64K. Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html at com.android.builder.dexing.D8DexArchiveMerger.getExceptionToRethrow(D8DexArchiveMerger.java:132) at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:119) at com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call(DexMergerTransformCallable.java:102) ... ... ... FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:mergeDexDebug'. > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade > com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: The number of method references in a .dex file cannot exceed 64K. Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html
Code language: PHP (php)

エラー解消方法

android/app/build.gradleを編集します。

... ... sourceSets { main.java.srcDirs += 'src/main/kotlin' } defaultConfig { ... ... multiDexEnabled true // ここを追加 } ... ... flutter { source '../..' } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'com.android.support:multidex:1.0.3' // ここを追加 }
Code language: JavaScript (javascript)

以上です。とても簡単ですね。

By admin