web-dev-qa-db-ja.com

FirebaseInitProvider:FirebaseAppの初期化に失敗しました

FirebaseをAndroidプロジェクトに追加 に従いましたが、Firebase Consoleでデータを受信するアプリを確認できません。
アプリを起動すると、ログに次のように表示されます。

FirebaseInitProvider: FirebaseApp initialization unsuccessful

これは何を意味するのでしょうか?私たちは何を間違っていますか?
このエラーはドキュメントにも見つかりませんし、StackOverflowにもありません。

46
Salvatorelab

これは何を意味するのでしょうか?私たちは何を間違っていますか?

認証が成功しなかったと仮定します。

a)projectレベルbuild.gradlebuildscriptrepositoriesおよび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レベルのdependenciesapp/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‐servicescom.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アプリビルドの整理 。クラッシュレポートを部分的にミュートする方法を説明しているためです。 リリースノート は、常に更新と変更を通知します。

39
Martin Zeitler

apply plugin: 'com.google.gms.google-services'app/build.gradleがない場合に発生します。追加してみてください。

また、Android SDK ManagerにGoogle Play services SDKがインストールされていることを確認してください。

17
Sayyam

最初に確認することをお勧めします:

1)<uses-permission Android:name="Android.permission.INTERNET" />をマニフェストに含めましたか?

3
Victor Mwenda

この行をアプリレベルbuild.gradleファイルに追加したことを確認してください

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

次の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'

2
Anuj Sachan

私の場合、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" />
1
Jyoti JK

Build.gradle(プロジェクトレベル)

変化する

    classpath 'com.google.gms:google-services:4.1.0'

これに

    classpath 'com.google.gms:google-services:4.0.1'
0
Prajjwal Singh

同じ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に

0
RichardG

私も同様の問題に直面していました。 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ファイル内の文字列リソースに貼り付けます。

コードを再構築すると、動作するはずです。 :)

0
Shoeb Ahmed

私の場合、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'

選択的にではなく。

0
Juan Pablo