プロジェクトを最新バージョンの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(ルート):
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サービスライブラリではうまく機能します。
解決策について何か考えがありますか。
次から新しい設定ファイル(google-services.json)を生成します。 https://developers.google.com/cloud-messaging/Android/client#get-config
クライアントセクションに"api_key": [ { "current_key": XXX } ]
を含む設定ファイルが新しくなりました
更新:または開発者コンソールで手動で有効にされたサービスとキーを生成します。
Google-services.jsonファイルに空の現在のキー値を追加すると、この問題が解決しました
"api_key": [{ "current_key": "" }]
この問題を抱えている人は、今のところ、 https://developers.google.com/cloud-messaging/Android/client#getでアプリにサービスを追加する必要があります。 -config
私の場合は、admobを追加し(既にanalyticsとgcmを持っています)、その後ファイルはapi_keyで生成されました。
私はそれがバグだと思っていますし、まもなく修正されるでしょう。
Jozka Jozinの承認された回答とそのコメントはありますが、Cloud Messagingは関連性も必須要件もありません。
それにもかかわらず、google-services.json
を再生成することが解決策の鍵です(だから私は彼に投票しました)。以下は私がしたことです。
ご存じのとおり、Analyticsの設定ファイルは Google Developers Guide から生成できます。
1:アプリを選択してください。
2:ポップアップを閉じます。隠れています...
3:ADMOBのオプション!
4:もちろん、選択して有効にします。
5:これで設定ファイルを正しく生成できました。
6:作ったよ!今回は、設定ファイルにapi_keyを適切に含める必要があります。
結論:対話型生成ツールのUIは少しわかりにくいです...
google-services.json
ファイルをもう一度ダウンロードできます。
ダウンロードする手順
1)。 Firebase
コンソールのアプリのトップメニューをクリックしてください。
2)。管理をクリックします。
3)。あなたはDownload the latest config
ファイルオプションを見つけ、あなたのアプリケーションでgoogle-services.json
ファイルをダウンロードして置き換えます。
まずあなたの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ファイルを入手しました。
Firebaseを使用していない場合は、google-services.json設定ファイルを生成するための正しいリンクが実際に見つかります 。ここで 。
プロジェクトに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
google-services.jsonを https://developers.google.com/cloud-messaging/Android/client#get-config で再生成します。重要なのは、「サービスの選択」の手順でクラウドメッセージングを有効にする必要があるということです。新しいgoogle-services.jsonファイルを開くと、次のような言葉が表示されます。
"api_key": [
{
"current_key": "xxxxxxxxxxx"
}"
この単語がない場合、またはcurrent_keyの値がない場合は正しいファイルではありません
私はここで答えられていないこれらのステップでこの問題を解決することができました。この回答はクラウドメッセージングを有効にするのではなく、サーバーキーを取得するだけです。
まず最初に、Firebase Consoleに行き、そして次にProject Settingsに行き、そして次に "Cloud Messaging"タブをクリックしてください。 「サーバーキー」と表示されている場所を確認し、長いキーが表示されていない場合(「送信者ID」の番号ではない)、「キーの再生成」をクリックすると長いキーが表示されます。そのキーをコピーして、google-services.jsonファイルの"api_key": [ {"current_key" : "key goes here"} ]
に配置します。
他の誰も働いていない間、この方法は私を助けました、それでうまくいけばこれは誰かに役立ちます。
GoogleServices'. > Missing api_key/current_key object
既存のプロジェクトを新しいFirebase Servicesに更新した後、このエラーが発生しました。 firebaseプロジェクト設定ページ からダウンロードした生成されたgoogle-service.jsonファイルには、必要なapi_key
が含まれていませんでした。
ここの他の回答からは、Google _/ Firebase Cloud Messaging (GCM/FCM)をこの
api_key
をgoogle-service.json
ファイルに含めるために追加する必要があるようです。
そのため、ファイルを再度ダウンロードする前に、firebase FCMに依存関係を追加しましたが、今回はキーが含まれています。
FCMを含める(GCM)
dependencies {
compile 'com.google.firebase:firebase-messaging:9.0.0'
}
google-services.json
ファイルを再設定してダウンロードしたくない場合は、firebase consoleから直接apiキーを取得できます。に行くだけ
概要>他のアプリを追加> Web
apiKey
を含むデータベースの設定を取得します。その値をコピーして、下のXXXで示されるcurrent_key
値に配置するだけです。
"api_key": [{ "current_key": "XXX" }]
Firebaesを使っているなら、fireKeyからgoogle-services.jsonにserverKeyをコピーする必要があります。
"api_key": [{ "current_key": "SERVER_KEY"}
サーバーキーを取得するには、Goto ProjectOverview>プロジェクト設定> CloudMessaging>コピーOR serverKeyを生成してコピーします。
Firebase Migratorの場合
プロジェクト設定に少なくとも1つの指紋を追加したことを確認し、google-services.jsonファイルを再ダウンロードしてください。