web-dev-qa-db-ja.com

GoogleServiceを初期化できませんでした

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

GoogleServiceの初期化に失敗しました、状態:10、Googleサービスの初期化に必要なリソース: 'R.string.google_app_id'がありません。考えられる原因は、google-services.jsonまたはcom.google.gms.google-services gradle pluginがないことです。

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

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

それは何について不平を言っていますか、そしてどのようにそれを軽減しますか?

112
Zach

公式ドキュメントの第2ステップに記載されているように、 developer.google.com によって生成された設定ファイル(google-services.json)を配置する必要があります こちら

プロセスは簡単です

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

    Firebaseプロジェクトに移行したことがある人は、 Firebaseコンソール に移動してプロジェクトを選択し、設定の下に設定ファイルがあります。 。

  3. それから公式文書のステップ3で引用されているように ここで

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

P:この回答を投票している人のために、なぜあなたが投票したのかについてコメントを残してください。

36
Nishant.

[Product Manager @ Googleより]

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

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

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

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

52
Sriram

私の場合、このエラーの原因は、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

10
13rac1

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

手順は次のとおりです。

  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"
    }
    
4
Will

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

1
stepheaw

これは私にも起こります。私の場合は、Androidスタジオが私の主な活動にコードを挿入しようとしたためです。コードを削除するとエラーが修正されます

挿入されたコードはアプリのインデックス作成に関するものです。

https://developers.google.com/app-indexing/Android/publish

0
Superbiji

Playサービスを正しくセットアップしてgoogle-services.jsonファイルをproject/appフォルダーに配置した後でも、この問題に直面する人のための実際の解決策は、

Build > Rebuild Project

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

0
anandbibek

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

Android Studioの左下にある[Build Variants]をクリックします。

無効にする方法 - generated-signed-apk-Android-studio

0
Dudas

Gradleファイルで、アプリのversionCodeversionNameを変更できます。

0
F. Milliard

当時も同じ問題がありました。私の場合はGCMである、必要なプレイサービスライブラリのみを使用することによってそれを解決することができました。

com.google.Android.gms:play-services:8.4.0の代わりに、com.google.Android.gms:play-services-gcm:8.4.0を使います。詳しくは こちら をご覧ください。これもマルチデックス問題を解決します。

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

0
Emen