Flutter ビルドエラー完全ガイド|よくある原因と解決方法をまとめて解説
Flutterでアプリ開発を進めていると、避けて通れないのがビルドエラーです。
コード自体に大きな問題がないように見えても、依存関係、SDKの不整合、Gradle設定、Xcodeの問題、キャッシュ破損、プラグイン競合など、さまざまな要因でビルドが失敗することがあります。
特に初心者にとっては、エラーメッセージが難解に見えやすく、何をどこから確認すればいいのかわからなくなりがちです。
しかし、Flutterのビルドエラーは闇雲に対処するのではなく、原因をパターンごとに整理して順番に確認することで、かなり高い確率で解決できます。
この記事では、Flutterで発生しやすいビルドエラーを網羅的に整理しながら、原因ごとの対処方法をできるだけわかりやすく解説します。
AndroidとiOSの両方を視野に入れつつ、実務でも役立つ確認手順、よく使うコマンド、トラブルシューティングの考え方までまとめて紹介します。
Flutterのビルドエラーとは何か
Flutterのビルドエラーとは、アプリを実行・コンパイル・パッケージ化する途中で処理が停止し、成果物が正常に生成されない状態を指します。
具体的には、以下のような場面で発生します。
-
flutter run実行時にアプリが起動しない -
flutter build apkやflutter build appbundleが失敗する -
flutter build ios実行時にエラーになる -
Android Studio や VS Code から実行したときにビルドが止まる
-
実機やエミュレータでインストール時に失敗する
Flutterのビルドは、単純にDartコードだけで完結しているわけではありません。
内部ではFlutter SDK、Dart SDK、Android SDK、Gradle、Java、Xcode、CocoaPods、プラグインなど、多くの要素が連携しています。
そのため、どこか一箇所でも設定やバージョンに問題があると、ビルドが失敗しやすくなります。
Flutterでビルドエラーが起きやすい主な原因
Flutterのビルドエラーは大きく分けると、次のようなカテゴリに整理できます。
1. 依存関係の問題
pubspec.yaml に記載したパッケージ同士のバージョン競合や、不適切な依存設定が原因です。
2. SDKやツールのバージョン不整合
Flutter SDK、Dart SDK、Android SDK、Java、Gradle、Xcode、CocoaPodsなどのバージョンが合っていない場合に発生します。
3. キャッシュやビルド成果物の破損
過去のビルド結果が残っていて、現在の設定やコードと矛盾しているケースです。
4. Android固有の設定ミス
Gradle、minSdkVersion、targetSdkVersion、AndroidManifest、署名設定などに問題がある場合です。
5. iOS固有の設定ミス
Podfile、Xcode設定、証明書、Provisioning Profile、iOS deployment target などが原因になることがあります。
6. コードレベルのコンパイルエラー
型エラー、importミス、null安全性の問題、記述ミスなどです。
7. 環境構築の問題
ローカルマシンに必要なツールが入っていない、またはパスが通っていない場合です。
まず最初に確認すべき基本コマンド
Flutterのビルドエラーが出たとき、最初に試すべき基本コマンドがあります。
この段階で解決することも多いため、毎回の確認ルーチンとして覚えておくと便利です。
flutter doctor
開発環境全体の状態を確認します。
より詳細に確認したい場合は次のように実行します。
このコマンドで、以下の問題が見つかることがあります。
-
Android SDK 未インストール
-
Xcodeの設定不足
-
CocoaPods未導入
-
Flutter SDKの不整合
-
ライセンス未承認
-
接続デバイスの問題
flutter clean
ビルドキャッシュを削除して再構築します。
Flutterでは非常によく使うトラブルシューティング手段です。
キャッシュ破損や古いビルド成果物が原因のときに有効です。
flutter pub get
依存関係を再取得します。
pubspec.yaml を編集したあとに実行していない場合や、依存パッケージの取得に失敗していた場合に必要です。
flutter pub upgrade
依存関係を更新します。
古いパッケージや互換性の問題がある場合に役立ちますが、更新によって別の問題が起きることもあるため注意が必要です。
flutter run -v
詳細ログを出しながら実行します。
通常のエラー表示だけでは原因が見えにくい場合、詳細ログを追うことでどの段階で失敗しているかを把握しやすくなります。
よくあるFlutterビルドエラーと解決方法
ここからは、実際に発生しやすいエラーをパターン別に解説します。
1. flutter pub get 関連のエラー
よくある症状
-
version solving failed -
Because xxx depends on yyy... -
pub get failed -
パッケージが解決できない
主な原因
-
pubspec.yamlに記載したパッケージのバージョン競合 -
Flutter SDKのバージョンとパッケージ要件が合っていない
-
廃止されたパッケージを使っている
-
タイポやフォーマットミス
解決方法
pubspec.yaml を見直す
まずは pubspec.yaml に記載ミスがないか確認します。
よくあるミスは次のとおりです。
-
インデントがずれている
-
コロンの後のスペースがない
-
バージョン指定が不正
-
パッケージ名が間違っている
例:
flutter:
sdk: flutter
http: ^1.2.0
provider: ^6.1.2
依存関係を整理する
競合しているパッケージのバージョンを見直します。
とくに古い記事のコードをそのまま使うと、現在のFlutter環境では合わないことがあります。
pubspec.lock を再生成する
ロックファイルが壊れている場合は削除して再生成します。
flutter pub get
キャッシュを修復する
Pubキャッシュが壊れている場合は、次のコマンドが役立つことがあります。
2. Target of URI doesn't exist エラー
よくある症状
-
Target of URI doesn't exist: 'package:xxx/xxx.dart' -
import文でエラーが出る
-
パッケージが見つからない
主な原因
-
flutter pub getを実行していない -
パッケージ名のスペルミス
-
依存関係に追加していない
-
IDE側が情報を更新できていない
解決方法
flutter pub get を実行する
import文を確認する
パッケージ名が正しいか確認してください。
IDEを再起動する
VS CodeやAndroid Studioが古いキャッシュを持っている場合があります。
IDE再起動や Dart: Restart Analysis Server を試すと改善することがあります。
3. Gradle build failed エラー
よくある症状
-
Execution failed for task -
Gradle task assembleDebug failed -
A problem occurred evaluating project -
Gradle build failed to produce an .apk file
主な原因
-
AndroidのGradle設定ミス
-
Javaバージョン不一致
-
Android Gradle PluginとGradleの相性問題
-
プラグインがAndroid側設定に対応していない
-
minSdkVersion不足
解決方法
Javaバージョンを確認する
FlutterやGradleのバージョンによって、必要なJavaバージョンが異なります。
まずは現在のJavaを確認します。
もしJavaのバージョンが高すぎる、または低すぎる場合は、プロジェクトに合うバージョンに調整します。
Gradle Wrapperを確認する
android/gradle/wrapper/gradle-wrapper.properties を確認します。
Android Gradle Pluginを確認する
android/build.gradle または android/settings.gradle 側の設定と整合しているか確認してください。
flutter clean を実行する
flutter pub get
flutter run
Android Studio側で同期する
Android Studioを使っている場合は、Gradle Syncで問題箇所が見えることがあります。
4. minSdkVersion 関連エラー
よくある症状
-
uses-sdk:minSdkVersion xx cannot be smaller than version xx declared in library -
一部プラグイン導入後に急にビルドできなくなる
主な原因
導入したFlutterプラグインが、現在の minSdkVersion より高いAndroidバージョンを要求しているためです。
解決方法
android/app/build.gradle を確認し、必要に応じて minSdkVersion を上げます。
例:
applicationId "com.example.app"
minSdkVersion 21
targetSdkVersion 34
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
ただし、minSdkVersion を上げると古いAndroid端末がサポート対象外になる可能性があるため、影響を確認したうえで対応することが重要です。
5. Androidライセンス未承認エラー
よくある症状
-
You have not accepted the license agreements of the following SDK components -
Android SDK関連でビルドが進まない
解決方法
以下のコマンドでライセンスを承認します。
表示に従って承認を進めたあと、再度 flutter doctor を実行して問題が解消しているか確認します。
6. No connected devices または実機・エミュレータ関連エラー
よくある症状
-
デバイスが見つからない
-
エミュレータは起動しているのにFlutterが認識しない
-
実機でデバッグ実行できない
解決方法
接続デバイス一覧を確認する
エミュレータを起動する
flutter emulators --launch <emulator_id>
実機デバッグ設定を確認する
AndroidならUSBデバッグが有効になっているか確認してください。
iPhoneならXcodeで署名設定や開発者モードも見直す必要があります。
7. Xcode build failed エラー
よくある症状
-
Xcode build done. ... Failed -
iOSだけビルドできない
-
実機配布やシミュレータ実行で失敗する
主な原因
-
CocoaPodsの不整合
-
Xcodeの設定不足
-
iOS deployment targetが低い
-
署名設定の問題
-
Podキャッシュ破損
解決方法
Podを再インストールする
iOSディレクトリへ移動してPodを入れ直します。
pod install
問題が深い場合は再構築します。
rm -rf Pods Podfile.lock
pod install
Flutter clean を試す
flutter pub get
cd ios
pod install
Xcodeで直接開く
次のファイルではなく、必ず .xcworkspace を開くようにします。
-
開くべき:
ios/Runner.xcworkspace -
開かない:
ios/Runner.xcodeproj
iOS deployment target を見直す
古い設定だと、新しいプラグインが要求するバージョンに足りないことがあります。
PodfileやXcode設定でバージョンを確認してください。
8. CocoaPods not installed エラー
よくある症状
-
CocoaPods not installed or not in valid state -
iOSビルド前に止まる
解決方法
macOSでCocoaPodsをインストールします。
あるいは環境によってはHomebrew経由も利用できます。
インストール後に確認します。
その後、再度 flutter doctor を実行します。
9. null safety 関連のコンパイルエラー
よくある症状
-
The parameter can't have a value of 'null' -
Null check operator used on a null value -
A value of type 'X?' can't be assigned to a variable of type 'X'
主な原因
Dartのnull safetyルールに違反しているためです。
解決方法
nullable型とnon-nullable型を区別する
例:
String title = name ?? 'default';
強制アンラップを乱用しない
次のような書き方は、値がnullのときクラッシュやビルド後の例外の原因になります。
パッケージ側との互換性を確認する
古いパッケージはnull safetyに未対応なことがあります。
パッケージ更新や代替ライブラリ検討が必要です。
10. MissingPluginException エラー
よくある症状
-
MissingPluginException(No implementation found for method ...) -
プラグイン導入後に実行時エラーになる
主な原因
-
プラグインが正しくネイティブ側に登録されていない
-
hot reloadだけで済ませており、完全再起動していない
-
iOS/Android側のセットアップが不足している
解決方法
アプリを完全再起動する
hot reloadでは反映されない場合があります。
一度停止してから再度ビルドし直してください。
flutter pub get
flutter run
ネイティブ設定を見直す
特定プラグインでは、AndroidManifestやInfo.plistなどに設定追加が必要なことがあります。
公式ドキュメントを確認してください。
11. SDK location not found エラー
よくある症状
-
Android SDKの場所が見つからない
-
ローカル環境依存のエラーが出る
解決方法
android/local.properties にSDKパスが正しく設定されているか確認します。
例:
Windowsの場合はバックスラッシュの扱いに注意が必要です。
また、Android StudioでSDKが正しくインストールされているかも確認してください。
12. Execution failed for task ':app:processDebugMainManifest'
よくある症状
-
Manifestマージ失敗
-
パーミッションや属性重複のエラー
-
プラグイン追加後に発生しやすい
主な原因
-
AndroidManifest.xml で設定が競合している
-
複数のライブラリが同じ属性を持っている
-
namespaceやapplicationId周りの不整合
解決方法
AndroidManifest.xml を確認する
重複設定や不要な宣言を整理します。
詳細ログを見る
Manifestマージエラーは、詳細ログを読むとどの属性が競合しているのか出ていることが多いです。
ライブラリの競合を確認する
最近追加したプラグインが原因であることが多いため、追加前後を比較して原因を切り分けます。
13. Unsupported class file major version エラー
よくある症状
-
Java関連のビルド失敗
-
Gradle実行時にクラスファイルバージョンの不一致が出る
主な原因
JavaバージョンとGradleまたはAndroid Gradle Pluginの対応が合っていないためです。
解決方法
-
Javaバージョンを確認する
-
Gradleバージョンを確認する
-
Android Gradle Pluginの対応表に合わせる
-
環境変数
JAVA_HOMEを見直す
これはFlutter自体というより、Androidビルド基盤の問題であることが多いです。
14. AAPT 関連エラー
よくある症状
-
AAPT: error: resource ... not found -
Androidのリソースファイルでエラー
-
XML、アイコン、色設定、文字列リソースなどで失敗
主な原因
-
android/app/src/main/res/以下のリソース不備 -
XML構文エラー
-
参照ファイルの欠落
-
Android側テーマ設定の不整合
解決方法
-
最近変更した
styles.xmlやAndroidManifest.xmlを確認する -
アイコンや画像ファイル名に不正文字がないか確認する
-
XMLタグの閉じ忘れやスペルミスを見直す
Si quieres conocer otros artículos parecidos a Flutter ビルドエラー完全ガイド|よくある原因と解決方法をまとめて解説 puedes visitar la categoría Detakaiseki.
