🗂

【Flutter】Android側のビルドでPlugin xxx was not foundが起きたときの対策と考え方【初心者向け】

2025/03/07に公開

こんにちは、ワニかず@40歳 出戻りエンジニアです。
今回はFlutterのAndroid側のビルドで、
Plugin xxxxxxxx was not foundが起きたときについてです。

個人開発をしていて、大抵のエラーはAIに投げればいい感じの道筋を示してくれるのですが、
このままだと何も実力がつかないのでは、と危機感を覚えたため、
エラー解決までの考え方についてもまとめてみました。

エラーの内容

Launching lib/main.dart on sdk gphone64 arm64 in debug mode...
FAILURE: Build failed with an exception.
* Where: Build file '/Users/xxxxxxx/android/app/build.gradle' line: 4
* What went wrong: Plugin [id: 'com.google.gms.google-services'] was not found in any of the following sources: - Gradle Core Plugins (plugin is not in 'org.gradle' namespace) - Plugin Repositories (plugin dependency must include a version number for this source)
* Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. BUILD FAILED in 4s Error: Gradle task assembleDebug failed with exit code 1

エラー解消の考え方

  1. エラーメッセージの解析
    エラーの核心部分はここです:
Plugin [id: 'com.google.gms.google-services'] was not found

これは Google Services プラグインが見つからないというメッセージです。

  1. 典型的なパターンの認識
  • Flutterの開発では、Firebase等のGoogleサービスを使用する際によく遭遇するエラーです
  • build.gradleでのプラグイン設定は、Android開発での標準的な設定ポイントです
  1. エラーの発生場所の確認
    エラーメッセージに記載されている場所を見ると:
Build file '/Users/.../android/app/build.gradle' line: 4

これにより、問題がbuild.gradleファイルの設定に関連していることがわかります。

  1. Gradle特有の知識
  • Gradleは2つのbuild.gradleファイル(プロジェクトレベルとアプリレベル)を使用します
  • プラグインの依存関係はプロジェクトレベルで定義し、適用はアプリレベルで行うという基本パターンがあります
  1. 解決策の段階的アプローチ
  2. まずプラグインの依存関係を追加(プロジェクトレベル)
  3. プラグインの適用(アプリレベル)
  4. 関連ファイルの配置確認
  5. クリーンビルドによる既存のビルドキャッシュのクリア

このような分析プロセスを経ることで、適切な解決策を導き出すことができます。
これは経験と知識の積み重ねによって培われるスキル。

また、このような問題に直面した際は、以下のような情報源も参考になります:

  • Flutter/Firebaseの公式ドキュメント
  • Stack Overflowなどの開発者コミュニティでの類似事例
  • Gradleの公式ドキュメント

今回のエラー対策

  1. まず、プロジェクトレベルの build.gradle ファイル(android/build.gradle)に以下のプラグインの依存関係を追加
buildscript {
    repositories {
        google()  // これが必要です
        mavenCentral()
    }
    dependencies {
        classpath 'com.google.gms:google-services:4.3.15'  // バージョンは最新のものを使用
    }
}

allprojects {
    repositories {
        google()  // これも必要です
        mavenCentral()
    }
}
  1. アプリレベルの build.gradle ファイル(android/app/build.gradle)の最後に以下を追加
apply plugin: 'com.google.gms.google-services'
  1. Firebase を使用している場合は、google-services.json ファイルが android/app/ ディレクトリに配置されていることを確認。

  2. 次に、以下のコマンドを実行してプロジェクトをクリーンビルド

flutter clean
flutter pub get
cd android
./gradlew clean
cd ..
flutter run

Discussion