TestCrew
Firebase・Android設定

File google-services.json is missing from module root folderの原因と直し方

File google-services.json is missing from module root folderの原因と直し方を解説。Android・Flutter・React Native・Expo・CIでの配置場所とvariant設定を整理します。

公開
2026年8月2日
更新
2026年8月2日
公式情報確認
2026年8月2日
google-services.jsonが見つからない場合の確認順
この記事の目次

Androidアプリをビルドした際、次のエラーが表示されることがあります。

File google-services.json is missing from module root folder.
The Google Services Plugin cannot function without it.

FlutterやReact NativeのAndroid版でも、Gradleビルド中に同じエラーが発生します。

これは、GoogleサービスGradleプラグインが有効になっているものの、ビルド対象のアプリモジュールからgoogle-services.jsonを見つけられない状態です。

google-services.jsonが見つからない場合の確認順

module root folderとは

ここでいうmodule root folderは、プロジェクト全体のルートではありません。

通常は、com.android.applicationが適用されているアプリモジュールの直下です。

標準的なAndroidプロジェクト:

MyApp/
├── app/
│   ├── build.gradle.kts
│   ├── google-services.json
│   └── src/
├── build.gradle.kts
└── settings.gradle.kts

正しい基本配置:

app/google-services.json

間違いやすい配置:

MyApp/google-services.json

最短の解決手順

  1. Firebaseコンソールから対象AndroidアプリのJSONを取得する
  2. ファイル名をgoogle-services.jsonにする
  3. ビルド対象のアプリモジュールを確認する
  4. そのモジュール直下へ配置する
  5. com.google.gms.google-servicesの適用先を確認する
  6. build variantやflavor用ディレクトリを確認する
  7. CIではビルド前にファイルを復元する
  8. クリーンビルドする

原因1:ファイル名が違う

同じファイルを複数回ダウンロードすると、次のような名前になることがあります。

google-services (1).json
google-services (2).json

プラグインが探す名前は次のとおりです。

google-services.json

Windowsでは拡張子が隠れていると、実際には次の名前になっている場合もあります。

google-services.json.json
google-services.json.txt

原因2:プロジェクト直下へ置いている

間違い:

project/google-services.json

正しい基本配置:

project/app/google-services.json

GoogleサービスGradleプラグインは、アプリモジュールや対応するsource setから構成ファイルを探します。

原因3:別のモジュールへ置いている

複数アプリモジュールがあるプロジェクトでは、app以外の名前が使われることがあります。

project/
├── customerApp/
├── adminApp/
└── shared/

customerAppをビルドしている場合、配置先は次のようになります。

customerApp/google-services.json

アプリモジュールは、Gradleファイルの次の設定で確認できます。

plugins {
    id("com.android.application")
}

com.android.libraryのモジュールと混同しないでください。

原因4:プラグイン適用先が違う

次のプラグインを適用しているモジュールと、JSONを配置したモジュールを一致させます。

plugins {
    id("com.android.application")
    id("com.google.gms.google-services")
}

別のモジュールへプラグインを適用していると、そのモジュール側でmissingエラーが発生します。

build type・flavor別の配置

GoogleサービスGradleプラグインは、環境別の構成ファイルに対応しています。

debugとrelease

app/src/debug/google-services.json
app/src/release/google-services.json

product flavor

app/src/development/google-services.json
app/src/production/google-services.json

特定のvariantだけ失敗する場合は、そのvariantに対応するファイルがあるか確認します。

Flutterでの配置場所

Flutterプロジェクトでは、Androidアプリモジュールは通常次の場所です。

android/app/

したがって、基本配置は次のとおりです。

android/app/google-services.json

間違いやすい場所:

flutter_project/google-services.json
flutter_project/android/google-services.json

FlutterFire CLIを使用している場合は、次も再実行します。

flutterfire configure
flutter clean
flutter pub get

React Nativeでの配置場所

一般的なベアReact Nativeプロジェクト:

android/app/google-services.json

エラーを出しているAndroidモジュールのGradleファイルと、JSONが同じモジュール階層にあるか確認してください。

Expoでの設定

Expoの構成では、app configからJSONのパスを指定する場合があります。

{
  "expo": {
    "android": {
      "googleServicesFile": "./google-services.json"
    }
  }
}

確認項目:

  • 指定パスにファイルが存在するか
  • EAS Buildへファイルを渡せているか
  • android.packageとFirebase登録パッケージ名が一致するか
  • 開発用と本番用を取り違えていないか

CIだけ失敗する場合

ローカルにはファイルがあるものの、.gitignoreで除外され、CIへ含まれていないケースがあります。

GitHub ActionsでBase64から復元する例:

- name: Restore google-services.json
  run: |
    mkdir -p android/app
    echo "${{ secrets.GOOGLE_SERVICES_JSON_BASE64 }}" \
      | base64 --decode \
      > android/app/google-services.json

ビルド前に存在を確認します。

- name: Verify Firebase config
  run: test -f android/app/google-services.json

ファイル内容やAPIキーをCIログへそのまま出力しないでください。

missing解消後に別エラーが出る場合

ファイルを正しい場所へ置いた後、次のエラーへ変わることがあります。

No matching client found for package name

これはファイルを読み込めるようになったものの、現在のapplicationIdとJSON内のpackage_nameが一致していない状態です。

missingエラーとパッケージ名不一致は、別の問題として確認してください。

配置後のビルド

Android:

./gradlew clean
./gradlew assembleDebug

Flutter:

flutter clean
flutter pub get
flutter run

キャッシュ削除は、正しいファイルを配置した後に行います。

まとめ

基本の配置場所は次のとおりです。

Android:              app/google-services.json
Flutter・React Native: android/app/google-services.json
flavor:               app/src/{flavor}/google-services.json

最初に、エラーを出しているアプリモジュールと、com.google.gms.google-servicesの適用先を特定してください。

一次情報

公式参考資料

Google PlayやFirebaseの画面・要件は変更される場合があります。公開作業の前に、リンク先の最新情報も確認してください。

Analytics設定

TestCrewは、Webサイトの改善のためGoogle LLCが提供するGoogle Analyticsを使用します。利用の可否を変更でき、変更後はこのページの以後の計測と次回以降の訪問に反映されます。 プライバシーポリシーを見る