🗂
【Flutter】Android側のビルドでPlugin xxx was not foundが起きたときの対策と考え方【初心者向け】
こんにちは、ワニかず@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
エラー解消の考え方
-
エラーメッセージの解析
エラーの核心部分はここです:
Plugin [id: 'com.google.gms.google-services'] was not found
これは Google Services プラグインが見つからないというメッセージです。
- 典型的なパターンの認識
- Flutterの開発では、Firebase等のGoogleサービスを使用する際によく遭遇するエラーです
-
build.gradle
でのプラグイン設定は、Android開発での標準的な設定ポイントです
-
エラーの発生場所の確認
エラーメッセージに記載されている場所を見ると:
Build file '/Users/.../android/app/build.gradle' line: 4
これにより、問題がbuild.gradle
ファイルの設定に関連していることがわかります。
- Gradle特有の知識
- Gradleは2つの
build.gradle
ファイル(プロジェクトレベルとアプリレベル)を使用します - プラグインの依存関係はプロジェクトレベルで定義し、適用はアプリレベルで行うという基本パターンがあります
- 解決策の段階的アプローチ
- まずプラグインの依存関係を追加(プロジェクトレベル)
- プラグインの適用(アプリレベル)
- 関連ファイルの配置確認
- クリーンビルドによる既存のビルドキャッシュのクリア
このような分析プロセスを経ることで、適切な解決策を導き出すことができます。
これは経験と知識の積み重ねによって培われるスキル。
また、このような問題に直面した際は、以下のような情報源も参考になります:
- Flutter/Firebaseの公式ドキュメント
- Stack Overflowなどの開発者コミュニティでの類似事例
- Gradleの公式ドキュメント
今回のエラー対策
- まず、プロジェクトレベルの
build.gradle
ファイル(android/build.gradle
)に以下のプラグインの依存関係を追加
buildscript {
repositories {
google() // これが必要です
mavenCentral()
}
dependencies {
classpath 'com.google.gms:google-services:4.3.15' // バージョンは最新のものを使用
}
}
allprojects {
repositories {
google() // これも必要です
mavenCentral()
}
}
- アプリレベルの
build.gradle
ファイル(android/app/build.gradle
)の最後に以下を追加
apply plugin: 'com.google.gms.google-services'
-
Firebase を使用している場合は、
google-services.json
ファイルがandroid/app/
ディレクトリに配置されていることを確認。 -
次に、以下のコマンドを実行してプロジェクトをクリーンビルド
flutter clean
flutter pub get
cd android
./gradlew clean
cd ..
flutter run
Discussion