307

Default FirebaseApp is not initialized in this process com.example.app. Make sure to call FirebaseApp.initializeApp(Context) first.Firebase Remote Config を追加したばかりの Android アプリのメッセージには、いくつかの例外が見られます。

スタック トレースは次のとおりです。

Fatal Exception: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.example.app. Make sure to call FirebaseApp.initializeApp(Context) first.
       at com.google.firebase.FirebaseApp.getInstance(Unknown Source)
       at com.google.firebase.remoteconfig.FirebaseRemoteConfig.getInstance(Unknown Source)
       at com.example.app.fragments.SomeFragment.updateFooter(SourceFile:295)
       at com.example.app.fragments.SomeFragment.onCreateView(SourceFile:205)
       at android.support.v4.app.Fragment.performCreateView(SourceFile:2080)
       at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1108)
       at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1290)
       at android.support.v4.app.BackStackRecord.run(SourceFile:801)
       at android.support.v4.app.FragmentManagerImpl.execSingleAction(SourceFile:1638)
       at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(SourceFile:679)
       at android.support.v4.app.FragmentPagerAdapter.finishUpdate(SourceFile:143)
       at android.support.v4.view.ViewPager.populate(SourceFile:1240)
       at android.support.v4.view.ViewPager.populate(SourceFile:1088)
       at android.support.v4.view.ViewPager.setAdapter(SourceFile:542)
       at com.example.app.SomeActivity.onSomeAsyncCallback(SourceFile:908)
       at com.example.app.SomeDataRetriever.onAsyncHttpCompleted(SourceFile:72)
       at com.example.app.io.AsyncHttp.onPostExecute(SourceFile:141)
       at com.example.app.io.AsyncHttp.onPostExecute(SourceFile:19)
       at android.os.AsyncTask.finish(AsyncTask.java:679)
       at android.os.AsyncTask.access$500(AsyncTask.java:180)
       at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:696)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:150)
       at android.app.ActivityThread.main(ActivityThread.java:5665)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:689)

これはバージョン 9.6.1 で、他の Firebase コンポーネントも使用しています。

compile 'com.google.firebase:firebase-ads:9.6.1'
compile 'com.google.firebase:firebase-config:9.6.1'
compile 'com.google.firebase:firebase-invites:9.6.1'
compile "com.google.firebase:firebase-messaging:9.6.1"

ドキュメントJavadocからわかるように、この場合、手動で初期化する必要はありません。

この例外は、さまざまなデバイスの Android 4 ~ 6 で発生します。

編集:

この質問が少し注目を集めているようです。この説明は、一部の人にとって興味深いものになると思います: https://firebase.googleblog.com/2016/12/how-does-firebase-initialize-on-android.html

4

31 に答える 31

429

ルートレベルの build.gradle に必ず追加してください

buildscript {
    // ...
    dependencies {
        // ...
        classpath 'com.google.gms:google-services:4.3.2'
    }
}

次に、モジュール レベルの Gradle ファイル (通常は app/build.gradle) で、ファイルの末尾に「apply plugin」行を追加して、Gradle プラグインを有効にします。

apply plugin: 'com.android.application'

android {
  // ...
}

dependencies {
  // ...
  implementation 'com.google.firebase:firebase-core:9.6.1'
  // Getting a "Could not find" error? Make sure you have
  // the latest Google Repository in the Android SDK manager
}

// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'

ドキュメントで述べたように。これをgradleファイルに追加するのを忘れたとき、上記の質問のように例外がありました。

于 2016-10-17T11:22:35.107 に答える
163

私はしばらく前にこの同じ問題を抱えていました。

初期化せずに Firebase のインスタンスを取得しようとしています。メイン関数または FutureBuilder で Firebase のインスタンスを取得する前に、次のコード行を追加してください。

FirebaseApp.initializeApp();
于 2017-01-10T13:11:11.603 に答える
5

別の解決策 - ベータ版を使用している場合は、別の Android Studio を試してください。私を助けてくれました。新しい Android Studio は Firebase を適切に追加しませんでした。私の場合は 3.3preview

さらに調査した結果、問題は、新しい Android スタジオが新しい Google サービス バージョンでプロジェクトを開始することであり、それが元の問題であることがわかりました。@Ammar Bukhariがこの変更が役立つことを示唆したように:

クラスパス 'com.google.gms:google-services:4.1.0' -> クラスパス 'com.google.gms:google-services:4.0.0'

于 2018-09-15T16:16:38.893 に答える
1

@Gabriel Lidenorの回答に従うと、私の場合、コンテキストを使用したアプリの初期化は機能しません。google-service.json なしで firebase-app を作成しようとするとどうなりますか? したがって、任意の数の firebase アプリを初期化する前に、まず次のように初期化する必要があります。

FirebaseOptions options = new FirebaseOptions.Builder().setApplicationId("APP_ID")
                    .setGcmSenderId("SENDER_ID").build();
FirebaseApp.initializeApp(context, options, "[DEFAULT]");
于 2019-12-16T13:34:30.923 に答える
0

私の場合、Google gms クラスパスをアップグレードしたときにこのエラーが発生しました。午前

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

したがって、次のようにダウングレードする必要があります。

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

そして、それはうまくいきました。

于 2021-08-11T14:44:45.827 に答える
-1

Application クラスの onCreate 関数で Firebase を初期化する必要があります。

 package com.rocks.music.videoplayer;

 import android.app.Application;
 import android.content.Context;

 import com.google.firebase.FirebaseApp;


/**
* Created by ashish123 on 22/8/15.
  */
 public class MyApplication extends Application {

private static MyApplication mInstance;

@Override
public void onCreate() {
    super.onCreate();
    mInstance = this;
    try {
        FirebaseApp.initializeApp(this);
    }
    catch (Exception e) {
    }
}

public static Context getInstance() {
    return mInstance;
}

}

マニフェスト ファイル内のコード:-

  <application
    android:name="com.rocks.music.videoplayer.MyApplication"
    android:allowBackup="true"
    android:icon="@drawable/app_icon"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
于 2017-08-17T12:36:07.607 に答える