GoogleServiceは初期化に失敗しました


113

AndroidアプリケーションでGoogleマップを使用しています。キーを作成し、マニフェストファイルに必要な権限を追加しました。しかし、すぐにアプリケーションを起動すると、デバッガーで次のメッセージが表示されます。

GoogleServiceの初期化に失敗しました、ステータス:10、Googleサービスを初期化するために必要なリソース「R.string.google_app_id」がありません。考えられる原因は、google-services.jsonまたはcom.google.gms.google-services gradleプラグインが欠落していることです。

何が悪いのかわかりません。マップは正常に機能しており、問題なく使用できます。私のgradleファイルには次のエントリがあります:

「com.google.android.gms:play-services:8.4.0」をコンパイルします

それは何に不満を持っていますか、そしてどうすればそれを軽減できますか?


これはマニフェストにあります:<meta-data android:name = "com.google.android.gms.version" android:value = "@ integer / google_play_services_version" />
j2emanue


私は両方を試しましたが、それでも同じメッセージが表示されます!
Zach

1
あなたはデバイスプレイサービスのAPKを更新していますか?
Abhigyan 2015

これらのソリューションはどれも機能していませんでしたが、サービスAPKを更新するとうまくいくようです!
midoriha_senpai

回答:


38

ここの公式ドキュメントの2番目のステップで説明されているように、developer.google.comgoogle-services.jsonによって生成された構成ファイル()を配置する必要があります

プロセスは簡単です

  1. プロジェクトを選択するか、新しいプロジェクトを作成できます。
  2. 次に、目的のサービス(この場合はマップサービス)を選択した後、構成ファイルを生成できます。

    Firebaseプロジェクトに移行した人は、Firebase コンソールに移動し、プロジェクトを選択して、設定の下に構成ファイルを見つけることで同じことができます。

  3. その後、公式ドキュメントのステップ3で引用されたとして、ここで

    google-services.jsonダウンロードしたファイルをAndroidのapp /またはmobile /ディレクトリにコピーします

PS:この回答に反対票を投じる人は、なぜ反対票を投じるのかコメントを残してください。


6
これは、新しいバージョンのGoogle Play開発者サービスのアプリで実際に必要ですか?それとも、Googleサインインだけですか?必要な場合と同様にログがエラーをスローするのは奇妙に思えますが、私はそうしないかもしれません
RED_

2
@Radix ...あなたが共有したリンクに行きましたが、GoogleサインインまたはGoogleクラウドメッセージングに登録するように求められました...地図については何もありません。何か案が?また、このjsonファイルを/ appのすぐ下にコピーするのはちょっと変です...わかりますか?どうもありがとう!
ジョニー・ウー、

2
アプリにはすでにgoogle-services.jsonが含まれていましたが、8.4.0にアップグレードするときに再作成する必要がありました。
Roy Solberg

1
グーグル-services.jsonを追加することと同じ問題が、助け、それは私の既に起動GCMを見るたび自身のサーバーキーを作成したいと考えていないことを奇妙なことはなかった
アンドリュー・V.

11
Googleのプロダクトマネージャーから、ここで正しい応答を参照してください:stackoverflow.com/questions/34365369/...
アハメド・ムニール

52

[プロダクトマネージャー@ Googleから]

google-services.json以下の手順に従って、Androidアプリのファイルをダウンロードしてコピーすることで、この問題を修正できます。

  • このリンクからアプリ/プロジェクト名とAndroidパッケージ名を選択し、をクリックしますContinue to Choose and configure services
  • をクリックしContinue to Generate Configuration filesます。
  • google-services.jsonファイルをダウンロードして、Androidプロジェクトのapp/or mobile/モジュールディレクトリにコピーします。

以前にGoogleプロジェクトをFirebaseにインポートしたことがある場合は、Firebaseコンソールの [プロジェクトの設定] から更新されたgoogle-services.jsonを取得できます。

google_app_idはプロジェクト自体ではなくプロジェクト内のアプリを参照するため、他の回答のいずれかで提案されているようにPROJECT_NUMBERをコピーないでください。


1
gradle-experimentalプラグインを使用するユーザーの場合、google-services.jsonは直接有効になりません。回避策については、stackoverflow.com / a / 38097895/457137を参照してください。
zevoid

jsonファイルを含める必要があるのはなぜですか?実行時にコードでIDを提供できないのはなぜですか?
der_michael 2016

ファイルはトップレベルのディレクトリではなく、/ app dirに入りますか?
IgorGanapolsky

11

私の場合、このエラーの原因は、Gradle用のGoogleサービスプラグインとPlayサービスライブラリが互換性のないバージョンであることでした。互換性のあるバージョンの手順:

1)依存関係をプロジェクトレベルのbuild.gradleに追加します。

classpath 'com.google.gms:google-services:1.5.0-beta2'

2)プラグインをアプリレベルのbuild.gradleに追加します。

apply plugin: 'com.google.gms.google-services'

3)Android Studioを使用している場合、これはアプリケーションのbuild.gradleファイルの依存関係セクションに追加する文字列です。

dependencies {
  compile "com.google.android.gms:play-services:8.3.0"
}

出典:https : //developers.google.com/cloud-messaging/android/client


1
ありがとう、しかしこれは私にとってはうまくいきませんでした-Android Studioはgoogle-services.jsonファイルもインストールしていると主張していますが、ファイルの必要性を上書きする上記の3つの手順を実行した場合は不要だと思いましたか?私が尋ねるのはどちらですか。基本的なマッピングしか提供していないのに、なぜGoogleユーザーログインシステムが必要なのですか。
iaindownie

1
私の解決策はリストに載っていなかったので、私は質問に答えて、この問題の別の潜在的な解決策を人々に示しました。あなたの場合、追加のライブラリがインストールされているかもしれません。のみを使用してみてくださいcom.google.android.gms:play-services-maps:8.4.0
13rac1

@ eosrei、com.google.android.gms:play-services-maps:8.4.0のみを使用して動作しました。ありがとうございます!
akshay7692

4

私は同じ問題に遭遇し、公式の解決策に従ってそれを解決しました。

手順は次のとおりです。

  1. このリンクgoogle-services.jsonから設定ファイルを取得します。

  2. google-services.jsonダウンロードしたファイルをAndroid Studioプロジェクトのapp /またはmobile /ディレクトリにコピーします。

  3. プロジェクトレベルのbuild.gradleに依存関係を追加します。

    classpath 'com.google.gms:google-services:1.5.0-beta2'
  4. プラグインをアプリレベルのbuild.gradleに追加します。

    apply plugin: 'com.google.gms.google-services'
  5. この依存関係をアプリレベルのbuild.gradleに追加します。

    dependencies {
        compile "com.google.android.gms:play-services:8.3.0"
    }

1
アプリのいくつかの予期しないエラーを削除するには、ベータ版よりも優れているため、com.google.gms:google-services:1.5.0を使用する方が良いと思います。
Andrew V.

@AndrewV。はい私は同意する。上記のリンクからバージョン「1.5.0-beta2」がコピーされました。
2016

1

再生サービスを正しく設定し、google-services.jsonファイルをproject/appフォルダーに配置した後でもこの問題に直面する人にとって、実際の解決策は

Build > Rebuild Project

おそらく、完全な再構築が実行されるまで、jsonファイルの文字列がコンパイル済みリソースに統合されないためです。


1

Xamarin / Visual Studio Macの場合、これをDroid.csprojの下部に追加する必要がありました

<Target Name="ProcessGoogleServicesJson" Condition=" '@(GoogleServicesJson)' != '' AND '$(AndroidApplication)' == 'True' AND '$(DesignTimeBuild)' != 'True'" BeforeTargets="$(ProcessGoogleServicesJsonBeforeTargets)" AfterTargets="$(ProcessGoogleServicesJsonAfterTargets)">
<Message Text="Using ProcessGoogleServicesJson override" Importance="high" />
<ProcessGoogleServicesJson GoogleServicesJsons="@(GoogleServicesJson)" IntermediateOutputPath="$(IntermediateOutputPath)" MonoAndroidResDirIntermediate="$(MonoAndroidResDirIntermediate)" AndroidPackageName="$(_AndroidPackage)">
    <Output ItemName="_AndroidResourceDest" TaskParameter="GoogleServicesGeneratedResources" />
    <Output ItemName="FileWrites" TaskParameter="GoogleServicesGeneratedResources" />
</ProcessGoogleServicesJson>
<ItemGroup>
    <FileWrites Include="$(IntermediateOutputPath)\ProcessGoogleServicesJson.stamp" />
</ItemGroup>

https://github.com/xamarin/GooglePlayServicesComponents/issues/64



0

私は当時同じ問題を抱えていました。必要な再生サービスライブラリ(私の場合はGCM)のみを使用して解決できました。

の代わりにcom.google.android.gms:play-services:8.4.0、私は使用します com.google.android.gms:play-services-gcm:8.4.0。こちらをご覧くださいをご覧ください。これはmultidexの問題も解決します。

次に、@ Radixと@Alexanderの両方のアプローチを適用して、GCMがlogcatに出力されたというメッセージを削除しましたgoogle-services.json



0

クイックフィックス私が使用しは、署名を無効にすることです。プロダクションコードを作成したくない場合は、ビルドバリアントをデバッグ、localOldDebugまたはlocalDebugに設定できます。

Android Studioの左下にある[バリアントの作成]をクリックします。

ハウツー無効化生成された署名付きapk-android-studio


コメントとして質問することができます
jjj

-2

誤って削除してしまう別の解決策があります

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
        .findFragmentById(R.id.map);
mapFragment.getMapAsync(this);

これを追加して作業してください、新しいソリューション用です

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.