FirebaseをAndroidプロジェクトに追加 に従いましたが、Firebase Consoleでデータを受信するアプリを確認できません。
アプリを起動すると、ログに次のように表示されます。
FirebaseInitProvider: FirebaseApp initialization unsuccessful
これは何を意味するのでしょうか?私たちは何を間違っていますか?
このエラーはドキュメントにも見つかりませんし、StackOverflowにもありません。
これは何を意味するのでしょうか?私たちは何を間違っていますか?
認証が成功しなかったと仮定します。
a)projectレベルbuild.gradle
のbuildscript
repositories
およびdependencies
:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
// Android Gradle Plugin
classpath "com.Android.tools.build:gradle:3.3.2"
// Google Services Plugin
classpath "com.google.gms:google-services:4.2.0"
}
}
b)moduleレベルのdependencies
app/build.gradle
(Android Intel x86イメージにはまだ以前のバージョンのGoogleが存在する場合がありますたとえば、10.2.0
は現在のx86
エミュレーターで実行され、たとえば11.8.0
は物理ARM
デバイスで実行されます。 play-services
およびfirebase-core
を参照すると、一部のモジュールを除外しない限り、allのモジュールが含まれます。 update:すべてのライブラリを個別に参照する必要があります。 com.google.Android.gms:play‐services
とcom.google.firebase:firebase-core
を参照することは、15.0.0
以降では機能しなくなりました。
Android {
...
buildTypes {
debug {
// suffixing the package name for debug builds,
// in order to partially mute the crash-reporting
// is an *optional* configuration (see below):
applicationIdSuffix ".debug"
}
}
}
dependencies {
// Google Play Services
// https://developers.google.com/Android/guides/releases
api "com.google.Android.gms:play-services-base:15.0.1"
api "com.google.Android.gms:play-services-auth:16.0.0"
api "com.google.Android.gms:play-services-identity:15.0.1"
// Google Firebase
// https://firebase.google.com/support/release-notes/Android
api "com.google.firebase:firebase-core:16.0.1"
api "com.google.firebase:firebase-auth:16.0.3"
api "com.google.firebase:firebase-config:16.0.0"
api "com.google.firebase:firebase-storage:16.0.1"
api "com.google.firebase:firebase-database:16.0.1"
api "com.google.firebase:firebase-messaging:17.3.0"
api "com.google.firebase:firebase-appindexing:16.0.1"
api "com.google.firebase:firebase-functions:16.1.0"
api "com.google.firebase:firebase-invites:16.0.1"
// api "com.google.firebase:firebase-crash:16.0.1"
api "com.google.firebase:firebase-ads:15.0.1"
api "com.google.firebase:firebase-firestore:17.0.4"
api "com.google.firebase:firebase-perf:16.0.0"
// the inappmessaging may cause dependency conflicts:
// api "com.google.firebase:firebase-inappmessaging:17.0.0"
// api "com.google.firebase:firebase-inappmessaging-display:17.0.0"
}
c)mobile/build.gradle
の最終行は次のとおりです。
// apply the Google Services Plugin
apply plugin: "com.google.gms.google-services"
d)(ダウンロードされた)クレデンシャルがapp/google-services.json
で利用可能であることを確認してください。 Firebase Consoleで、bothSHA1(またはSHA256)ハッシュ、デバッグおよびリリースキーを追加する必要があります。両方のビルドが適切に認証されるようにするため。すべてが一致すると、レポートする必要があります。
I/FirebaseInitProvider: FirebaseApp initialization successful
それはすべて十分に文書化されています。ただ、 Google Play開発者サービスのセットアップ 、 Firebaseクイックスタート または クラッシュレポート ;をご覧ください。 Firebase Blogのこの記事は非常に便利です。 Firebase対応Androidアプリビルドの整理 。クラッシュレポートを部分的にミュートする方法を説明しているためです。 リリースノート は、常に更新と変更を通知します。
apply plugin: 'com.google.gms.google-services'
にapp/build.gradle
がない場合に発生します。追加してみてください。
また、Android SDK ManagerにGoogle Play services SDKがインストールされていることを確認してください。
最初に確認することをお勧めします:
1)<uses-permission Android:name="Android.permission.INTERNET" />
をマニフェストに含めましたか?
この行をアプリレベルbuild.gradle
ファイルに追加したことを確認してください
apply plugin: 'com.google.gms.google-services'
次の2つの理由により、問題全体が発生します。
1。メインフェストで許可を得ていません
<uses-permission Android:name="com.google.Android.c2dm.permission.RECEIVE" />
<uses-permission Android:name="Android.permission.INTERNET" />
[ここに画像の説明を入力] [1]
2。gradleビルドバージョンにはバグ-プロジェクトレベルの依存関係があります
classpath 'com.google.gms:google-services:4.1.0'
と置換する
classpath 'com.google.gms:google-services:4.0.1'
私の場合、Gradleですべてのことを適切に行いました。 FirebaseApp initialization unsuccessful
が表示されていても
問題を解決したマニフェストにcom.google.Android.c2dm.permission.RECEIVE permission
を追加しました。
<uses-permission Android:name="com.google.Android.c2dm.permission.RECEIVE" />
<uses-permission Android:name="Android.permission.INTERNET" />
Build.gradle(プロジェクトレベル)
変化する
classpath 'com.google.gms:google-services:4.1.0'
これに
classpath 'com.google.gms:google-services:4.0.1'
同じLogcat出力を取得しました。
App/build.gradleでGoogle Play Services
依存関係を9.0.0に更新して修正しました
そして更新
buildScript {
//...
dependencies {
//...
classpath 'com.google.gms:google-services:3.0.0'
}
}
私のプロジェクトbuild.gradleで3.0.0に
私も同様の問題に直面していました。 Google開発者プロジェクトをFirebaseにインポートし、AndroidスタジオアプリとFirebaseコンソールの指示に従ってすべての手順を実行しました。つまり、依存関係、google-services.jsonファイルを追加して、再度ビルドしました。
それでも、Firebaseコンソールにデータは送信されません。そのため、logcatを実行している間、google_app_idが欠落しているように見えたため、Firebaseは初期化できませんでした。
多くの試行錯誤の後、res/values/strings.xml
ファイルに新しい文字列リソースを追加する必要がありました。
<string name="google_app_id">YOUR_GOOGLE_APP_ID</string>
Google App IDは、mobilesdk_app_id
という見出しの下でFirebaseコンソールからダウンロードしたgoogle_services.jsonファイルで入手できます。
"client": [
{
"client_info": {
"mobilesdk_app_id": "SOMETHING"
}
.
.
.
mobilesdk_app_id
をコピーし、res/values/strings.xml
という名前のgoogle_app_id
ファイル内の文字列リソースに貼り付けます。
コードを再構築すると、動作するはずです。 :)
私の場合、Google Play Servicesを選択的にコンパイルしようとしていました。代わりに
compile 'com.google.Android.gms:play-services:9.4.0'
https://developers.google.com/Android/guides/setup#ensure_devices_have_the_google_play_services_apk
Google Play Servicesから手動でマップと他の依存モジュールを追加しました
compile 'com.google.Android.gms:play-services-maps:9.4.0'
compile 'com.google.Android.gms:play-services-places:9.4.0'
残念ながら、Firebaseはこの後動作を停止しました。
その結果、ロールバックして使用に戻る必要がありました
compile 'com.google.Android.gms:play-services:9.4.0'
選択的にではなく。