Ошибка по умолчанию FirebaseApp не инициализирована

Я вижу несколько исключений с сообщением Default FirebaseApp is not initialized in this process com.armoured. Make sure to call FirebaseApp.initializeApp(Context) first.

Трассировка стека приведена ниже:

2019-03-12 20:42:33.607 11511-11511/com.armoured E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.armoured, PID: 11511
java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.armoured. Make sure to call FirebaseApp.initializeApp(Context) first.
    at com.google.firebase.FirebaseApp.getInstance(com.google.firebase:firebase-common@@16.0.1:219)
    at com.google.firebase.auth.FirebaseAuth.getInstance(Unknown Source:1)
    at com.armoured.fragments.LoginFragment.onCreateView(LoginFragment.java:59)
    at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2439)
    at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1460)
    at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
    at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
    at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:802)
    at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625)
    at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411)
    at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366)
    at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273)
    at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3273)
    at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3229)
    at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:201)
    at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:620)
    at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:178)
    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1391)
    at android.app.Activity.performStart(Activity.java:7165)
    at android.app.ActivityThread.handleStartActivity(ActivityThread.java:2975)
    at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180)
    at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165)
    at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6718)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

Моя проблема точно такая же, как и в вопросе это. Однако ни одно из решений в этом вопросе не сработало для меня. Я уже добавил apply plugin: 'com.google.gms.google-services' в свой файл Gradle. Я использую firebase:16.0.3 зависимости во всем своем коде.

И последняя деталь: я уже добавил FirebaseApp.initializeApp(Context) в свой фрагмент. Для полноты я добавляю функцию, в которой я получаю эту ошибку, к вопросу, чтобы вы, ребята, могли иметь контекст об ошибке.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    FirebaseApp.initializeApp(getActivity());
    View view = inflater.inflate(R.layout.fragment_login, container, false);
    mViewModel = ViewModelProviders.of(this).get(LoginViewModel.class);
    mAuth = FirebaseAuth.getInstance();
    ButterKnife.bind(this,view);
    return view;
}

Обновлено: я прилагаю файл уровня градиента уровня приложения по запросу.

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.armoured"
        minSdkVersion 23
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    api 'com.google.android.material:material:1.0.0-beta01'
    implementation 'androidx.cardview:cardview:1.0.0'
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.0.0-beta01'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
    implementation 'com.jakewharton:butterknife:10.1.0'
    implementation 'com.google.firebase:firebase-core:16.0.3'
    implementation 'com.google.firebase:firebase-auth:16.0.3'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0-beta01'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-beta01'
    implementation 'androidx.recyclerview:recyclerview:1.0.0-beta01'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'

}

Не могли бы вы отредактировать вопрос, чтобы показать весь файл build.xml, даже если вы считаете, что это правильно?

Doug Stevenson 13.03.2019 01:50

Я предполагаю, что под файлом build.xml вы имеете в виду файл градиента уровня приложения?

Rohit Shinde 13.03.2019 01:59

Извините, build.gradle, тот, который вы изменили.

Doug Stevenson 13.03.2019 02:03

Я прикрепил его в своем редактировании. Я также связал вопрос, который предложил это изменение (чтобы он не был помечен как дубликат).

Rohit Shinde 13.03.2019 02:10

@RohitShinde Вы случайно не используете classpath 4.1?

sunil sunny 13.03.2019 02:10

Я так не думаю, но не подскажете, как проверить?

Rohit Shinde 13.03.2019 02:12

Проверьте свой корневой уровень build.gradle. Добавьте это classpath 'com.google.gms:google-services:4.2.0' в зависимости. Потому что, если вы используете 4.1, это известная проблема, которая была исправлена ​​в 4.2.

sunil sunny 13.03.2019 02:17

@sunilsunny да, это решает проблему. Меняем на 4.2 с 4.1. Если вы напишете это как ответ, я приму это.

Rohit Shinde 13.03.2019 03:34
1
8
608
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

В своем вопросе вы сказали, что добавили apply plugin: 'com.google.gms.google-services' в свой build.gradle, но я его там не вижу. Он должен быть в самом низу вашего build.gradle на уровне приложения. Возможно, вы изменили файл build.gradle верхнего уровня вместо приложения. Отсутствие этой строки определенно вызовет проблему, которую вы видите.

Также больше нет необходимости использовать одну и ту же версию зависимостей Firebase. Они каждая ревизия теперь независимо друг от друга. Если вы впервые интегрируете Firebase, вам следует использовать все последние версии, как показано в файле документация по установке.

Эй, Дуг, если вы посмотрите на самый верх файла, я добавлю строку, которую вы упомянули.

Rohit Shinde 13.03.2019 02:59

И вместо этого он должен быть в самом низу, согласно той же странице связанных инструкций.

Doug Stevenson 13.03.2019 03:15

Привет, Дуг, я поставил его в самый низ, и все равно это не сработало. Комментарий Сунила выше: помог переход на версию 4.2 gradle вместо использования 4.1. Думаю, это баг версии 4.1.

Rohit Shinde 13.03.2019 03:35
Ответ принят как подходящий

Обновление classpath в корне build.gradle с 4.1 на 4.2 должно решить эту проблему, потому что в 4.1 был проблема, который был исправлен в 4.2.

Итак, ваши зависимости должны выглядеть примерно так.

dependencies {
   // other classpaths
    classpath 'com.google.gms:google-services:4.2.0'
}

Другие вопросы по теме