FlutterAndroidでプロジェクトをビルドする際に、Firebase関連でいくつかのエラーが発生しました。この記事では、それらのエラーとその解決方法について詳しく説明します。特に、android/build.gradle
とandroid/app/build.gradle
の変更点に焦点を当てています。
1. Firebase関連のビルドエラー
エラー内容
ビルド時に以下のエラーが発生しました。
Error while evaluating property 'extraGeneratedResDir' of task ':app:mapDebugSourceSetPaths'
解決方法
このエラーは、FirebaseのGradleプラグインのバージョンが古いために発生することがあります。解決するためには、android/build.gradle
のdependencies
セクションを以下のように更新する必要があります。
dependencies {
classpath 'com.android.tools.build:gradle:7.3.0'
// START: FlutterFire Configuration
classpath 'com.google.gms:google-services:4.3.14' // バージョンを4.3.10から4.3.14に更新
// END: FlutterFire Configuration
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
2. 64Kメソッド制限の問題
エラー内容
ビルド時に以下のエラーが発生しました。
ERROR:D8: Cannot fit requested classes in a single dex file (# methods: 66746 > 65536)
解決方法
このエラーは、アプリケーションのメソッド数が64Kを超えた場合に発生します。解決するためには、android/app/build.gradle
に以下の設定を追加する必要があります。
defaultConfig {
...
multiDexEnabled true
}
dependencies {
...
implementation 'androidx.multidex:multidex:2.0.1'
}
注意: 上記の変更はandroid/build.gradle
ではなく、android/app/build.gradle
に追加する必要があります。
3. Gradleのクリーンとビルド(補足)
エラーの解消後、プロジェクトのビルドを確実に行うために、Gradleのクリーンとビルドを実行することをおすすめします。これにより、前回のビルド時に生成された一時ファイルやキャッシュがクリアされ、新しい設定でのビルドが正確に行われます。
実行方法
Terminalやコマンドプロンプトを開き、プロジェクトのandroid
ディレクトリに移動して、以下のコマンドを実行します。
./gradlew clean
./gradlew build
これにより、Gradleがプロジェクトをクリーンし、その後ビルドを行います。
参考記事
Flutter3.10.0での新規プロジェクトにFirebaseを導入した際、Android向けビルドでエラーが出る現象の解決方法
android/build.gradle
の変更に関する情報が提供されています。この記事と同様の内容を参考にして、問題を解決することができました。
以上、FlutterプロジェクトでのFirebase関連のビルドエラーとその解決方法についての説明でした。同様の問題に直面している方の参考になれば幸いです。