Googleサービス3.0.0にapi_key / currentキーがありません


157

Googleサービスとライブラリの最新バージョン(9.0.0)でプロジェクトをアップグレードしたので、この奇妙な問題が発生しました。

エラービルド

等級コンソール:

:app:processDebugGoogleServices
Parsing json file: /Users/cyrilmorales/Documents/Projects/mobilemeans-punainenristi/app/google-services.json
:app:processDebugGoogleServices FAILED
Error:Execution failed for task ':app:processDebugGoogleServices'.
> Missing api_key/current_key object
Information:BUILD FAILED

build.gradle(root):

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0-alpha1'
    classpath 'com.google.gms:google-services:3.0.0'
}

build.gradle(アプリ):

dependencies {
    ....
    compile 'com.google.android.gms:play-services-analytics:9.0.0'
    compile 'com.google.android.gms:play-services-gcm:9.0.0'
    compile 'com.google.android.gms:play-services-maps:9.0.0'
    compile 'com.google.android.gms:play-services-location:9.0.0'
    ...
}
apply plugin: 'com.google.gms.google-services'

ただし、それは8.4.0およびgoogle-services 2.1.0のPlayサービスライブラリとうまく機能します。

あなたは解決策について何か考えがありますか?


私はマップを使用しており、AndroidManifest.xmlファイルでapi_keyを定義しています。そこにapi_keyがありますか?そのようなもの<meta-data android:name = "com.google.android.geo.API_KEY" android:value = "AIzaSdfdfdfdfdfdfdfdfdRVxThQsNaqY" />
GrzegorzBielańskiMay

はい私はそれを持っています。マニフェストは適切に構成されており、これまでは常に動作していました。
Palmsnipe 2016年

回答:


162

https://developers.google.com/cloud-messaging/android/client#get-configから新しい構成ファイル(google-services.json)を生成します

"api_key": [ { "current_key": XXX } ]クライアントセクションにある新しい設定ファイル

更新:またはデベロッパーコンソールで手動でサービスを有効にしてキーを生成します。


1
confファイル "api_key"に新たに追加:[{"current_key":XXX}]
Jozka Jozin '19年

1
そこに行くべきAPIキーはどれですか?
Marco Zanetti、2016年

8
Cloud Messagingを使用しない場合でも有効にして、新しいjsonファイルを生成する必要があります。クラウドメッセージングを有効にすると、APIキーが必要になります。
ラファエル・グティエレス

2
Cloud Messaging API "api_key":[{"current_key": "the_api_key"}]を有効にしてJSONファイルでAPIキーを取得しましたが、それでも機能しません。何が悪いのか本当にわかりません。:-/
マルコサネッティ2016年

7
このapi_keyが何のためのものか誰が知っていますか?以前は問題なく動作しました...
Pavel Biryukov

89

google-services.jsonファイルに空の現在のキー値を追加すると、この問題が解決しました

"api_key": [{ "current_key": "" }]


1
ただ、私は「API_KEY」の値が「クライアント」値内にあることを追加しようと思いました

2
@Ajax -the Max:これも私にとってはうまくいきました。なぜこれが機能するのか説明してくれませんか?
Pineda

1
これは、古いGMSクラウドメッセージングを利用する場合に最適なソリューションのようです。新しい設定ファイルは、Firebaseを追加する代わりにGMSキーを除外します。
GordonW 2017

34

はい、Firebaseを初めて使用する場合と同様です。アプリメニューをクリックし、[管理]をクリックします。

ここに画像の説明を入力してください

google-services.jsonを再度ダウンロードできます。

ここに画像の説明を入力してください


2
はい、もう一度ダウンロードしました。次回はより大きなファイルになり、これにより問題が解決しました
Hatem Badawi

1
確認できます:Firebase Analyticsにサインアップしたところ、APIキーを含まないgoogle-services.jsonが自動的にダウンロードされました。次に、このように手動でダウンロードしました。APIキーはjsonにありました。
chichilatte 2017年

このダッシュボードにアクセスするためのURLは何ですか?
ショーンビーチ

9

この問題が発生しているすべての人のために、今のところ、https: //developers.google.com/cloud-messaging/android/client#get-configでアプリにサービスを追加する必要があります

私の場合、私はadmob(すでにanalyticsとgcmを持っています)を追加し、ファイルはapi_keyで生成されました。

私はそれがバグであり、すぐに修正されると思います、それまではそれをしてください。


確かにバグがあります...新しいjsonを取得するには、アプリへの招待も追加する必要がありました
Jivraj S Shekhawat

こんにちは、私は新しい構成を追加しましたが、IDEはまだそれがapi_keyがないことを不平を言っています
コード

IDEを開く前に、構成ファイルをチェックしs 'api_key' value. Clearly thereてバグがあることを確認できるため、問題を解決するために別の方法を試す必要があります。
Elvis Oliveira

つまり、gradleファイルに新しい依存関係を追加するたびに、新しいapi-keyが生成されるため、新しいgoogle-services.jsonをダウンロードする必要がありますか。
Ashok Bijoy Debnath 2016年

8

Jozka Jozinの回答とコメントは承認されましたが、クラウドメッセージングは​​関連も必須でもありません。

それにもかかわらず、再生成google-services.jsonが解決策の鍵です(したがって、私は彼に投票しました)。以下は私がやったことです:

ご存知のとおり、Googleデベロッパーガイドからアナリティクスの設定ファイルを生成できます。

1:アプリを選択します。

1)アプリを選択

2:ポップアップを閉じます!それは隠れる...

ポップアップを閉じてください!

3:AdMobのオプション!

AdMobの隠しオプション

4:もちろん、それを選択して有効にしてください!

有効にしてください!

5:これで正しく構成ファイルを生成できます!

構成ファイルを生成する

6:できました!今回は、設定ファイルにapi_keyを適切に含める必要があります。

着いた!

結論:インタラクティブ生成ツールのUIは少し混乱しています...


1
おかげで、新しい構成を取得できましたが、IDEはまだapi_keyがないと不平を言っています
コード

少し混乱...それは恐ろしいです!あなたの明確な説明のための称賛。
Niels

7

google-services.jsonファイルを再度ダウンロードできます。

ダウンロードの手順:

1)。Firebaseコンソールでアプリのトップメニューをクリックします。

2)。管理をクリックします。

3)。あなたはDownload the latest configファイルオプションを見つけgoogle-services.json、あなたのアプリケーションでファイルをダウンロードして置き換えます。


4

JSONファイルの最初

交換する

"api_key": []

"api_key": [{ "current_key": "" }]

その後、gradleビルドは成功しますが、アプリケーションを実行すると、次のようなエラーが発生する場合があります。

Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE
    File1: C:\Users\bucky\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.2.2\d20be6a5ddd6f8cfd36ebf6dea329873a1c41f1b\jackson-core-2.2.2.jar
    File2: C:\Users\bucky\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-databind\2.2.2\3c8f6018eaa72d43b261181e801e6f8676c16ef6\jackson-databind-2.2.2.jar
    File3: C:\Users\bucky\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations\2.2.2\285cb9c666f0f0f3dd8a1be04e1f457eb7b15113\jackson-annotations-2.2.2.jar

この問題を解決するには、app.gradleファイルに以下を追加します。

packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
    }

編集:それは私に後でapkファイルを構築しているときにいくつかのエラーを示しました。そのため、jsonファイルを再度ダウンロードする必要がありました。2回の試行の後、有効なAPIキーを含むjsonファイルを取得しました。


3

Firebaseを使用していない場合は、google-services.json構成ファイルを生成するための正しいリンクが実際にここにあります


2

https://developers.google.com/cloud-messaging/android/client#get-configでgoogle-services.jsonを再生成します重要なことの1つは、「サービスの選択」ステップクラウドメッセージングを有効にし、新しいgoogleを開く必要があることです -services.jsonファイルのような単語が表示されます

    "api_key": [
     {
       "current_key": "xxxxxxxxxxx"
     }"

この単語なしまたはcurrent_keyの値なしは適切なファイルではありません


2

ここでは答えられないこれらのステップでこの問題を解決することができました。この回答はクラウドメッセージングを有効にするものではなく、サーバーキーを取得するだけです。

そのため、まずFirebaseコンソールに移動し、次に[プロジェクトの設定]に移動して、[クラウドメッセージング]タブをクリックします。「サーバーキー」と表示されている場所を確認し、長いキー(「送信者ID」番号ではない)が表示されていない場合は、「キーの再生成」をクリックすると長いキーが表示されます。そのキーをコピーして、google-services.jsonファイルに配置します"api_key": [ {"current_key" : "key goes here"} ]

他の誰も働いていなかった間、この方法は私を助けました、それでうまくいけばこれは誰かを助けます。


2

ここに画像の説明を入力してください

[概要]-> [歯車]アイコン-> [プロジェクト設定]をクリックします。

ここに画像の説明を入力してください

[最新の構成をダウンロード]に移動し、google-service.jsonボタンをクリックしてファイルをダウンロードし、アプリフォルダーに保存して再度コンパイルします。楽しい!


2

SHA証明書のフィンガープリントをプロジェクトに追加してから、google-services.jasonファイルを再度ダウンロードする必要があります。このファイルには、「api_key」:[{"current_key": "xxxxxx"}]が自動的に含まれているはずです。

次のページを表示して、指紋を生成する方法を確認できます。

https://developers.google.com/android/guides/client-auth

Windowsでは、次のコマンドを実行し、デバッグの目的でパスワードとしてandroidを使用します。

keytool -exportcert -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

1

Firebaseを使用する

GoogleServices'. > Missing api_key/current_key object

既存のプロジェクトを新しいFirebaseサービスに更新した後、このエラーが発生しました。firebaseプロジェクト設定ページからダウンロードされた生成されたgoogle-service.jsonファイルには、必要なものが含まれていませんでした。api_key

ここの他の回答から、これをファイルに含めるには、Google / Firebase Cloud Messaging(GCM / FCM)を追加する必要があるようです。api_keygoogle-service.json

そのため、ファイルを再度ダウンロードする前に、Firebase FCMに依存関係を追加しましたが、今回はキーが含まれていました。

FCM(GCM)を含める

dependencies {
     compile 'com.google.firebase:firebase-messaging:9.0.0'
}

1

google-services.jsonファイルを再構成してダウンロードしたくない場合は、Firebaseコンソールから直接APIキーをフェッチできます。に行くだけ

概要>別のアプリを追加>ウェブ

を含むデータベースの構成を取得しますapiKey。その値をコピーして、current_key下のXXXで示される値に配置するだけです

"api_key": [{ "current_key": "XXX" }]

0

Firebase移行者の場合:

プロジェクト設定に少なくとも1つのフィンガープリントを追加していることを確認し、google-services.jsonファイルを再ダウンロードします


おかげで、私はコードラボの指示に従って行き、最初はSHA1キーを追加しませんでした。後で、ApiKey-CurrentKeyが見つからなかったため、追加する必要がありました。それが事実だったかどうかわからない。しかし、それは私の問題を解決しました。
Rana Ranvijay Singh

0

firebaesを使用している場合、serverKeyをfirebaseからgoogle-services.jsonにコピーする必要があります

 "api_key": [{ "current_key": "SERVER_KEY"}

サーバーキーを取得するには、[プロジェクトの概要]> [プロジェクトの設定]> [CloudMessaging]> [コピー]をクリックするか、serverKeyを生成してコピーします。


0

これをgoogle-service.jsonファイルに追加します。app / google-service.jsonの下にあります

"api_key":[{"current_key": "your-google-api-key"}]

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