如何解决Android Firebase错误“默认FirebaseApp未在此过程中初始化”?

我使用FirebaseAuth进行用户注册电子邮件和密码,我已经在我的项目中添加了插件和依赖项。

MainActivity.java

public class MainActivity extends AppCompatActivity implements View.OnClickListener { EditText ed_email, ed_pass; Button but_login; ProgressDialog progressDialog; FirebaseAuth firebaseAuth; Context context; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); context=getApplicationContext(); FirebaseApp.initializeApp(context); firebaseAuth=FirebaseAuth.getInstance(); ed_email= (EditText) findViewById(R.id.ed_email); ed_pass= (EditText) findViewById(R.id.ed_pass); but_login= (Button) findViewById(R.id.but_login); but_login.setOnClickListener(this); progressDialog=new ProgressDialog(this); } public void registerUser(){ String email=ed_email.getText().toString().trim(); String pass=ed_pass.getText().toString().trim(); if(TextUtils.isEmpty(email)){ Toast.makeText(getApplicationContext(),"Invalid Input",Toast.LENGTH_SHORT).show(); return; } if(TextUtils.isEmpty(pass)){ Toast.makeText(getApplicationContext(),"Invalid Input",Toast.LENGTH_SHORT).show(); return; } progressDialog.setMessage("You are registering..."); progressDialog.show(); firebaseAuth.createUserWithEmailAndPassword(email,pass).addOnCompleteListener(this, new OnCompleteListener() { @Override public void onComplete(@NonNull Task task) { if (task.isSuccessful()) { Toast.makeText(getApplicationContext(), "Success", Toast.LENGTH_SHORT).show(); progressDialog.hide(); } else { Toast.makeText(getApplicationContext(), "Sorry...!!!", Toast.LENGTH_SHORT).show(); progressDialog.hide(); } } }); } @Override public void onClick(View v) { registerUser(); } 

}

logcat –

 com.skapsdevelopment.firebase E/AndroidRuntime: FATAL EXCEPTION: main Process: com.skapsdevelopment.firebase, PID: 31993 Theme: themes:{default=overlay:com.resurrectionremix.pitchblack, iconPack:com.baranovgroup.nstyle, fontPkg:com.resurrectionremix.pitchblack, com.android.systemui=overlay:com.resurrectionremix.pitchblack, com.android.systemui.navbar=overlay:com.resurrectionremix.pitchblack} java.lang.RuntimeException: Unable to start activity ComponentInfo{com.skapsdevelopment.firebase/com.skapsdevelopment.firebase.MainActivity}: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.skapsdevelopment.firebase. Make sure to call FirebaseApp.initializeApp(Context) first. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2450) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5461) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.skapsdevelopment.firebase. Make sure to call FirebaseApp.initializeApp(Context) first. at com.google.firebase.FirebaseApp.getInstance(Unknown Source) at com.google.firebase.auth.FirebaseAuth.getInstance(Unknown Source) at com.skapsdevelopment.firebase.MainActivity.onCreate(MainActivity.java:35) at android.app.Activity.performCreate(Activity.java:6251) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5461) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

我的应用程序未启动并显示以下错误:

 java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.skapsdevelopment.firebase. Make sure to call FirebaseApp.initializeApp(Context) first. 

为什么应用程序无法正常启动?

仔细检查以下内容,因为这对我有用:

在项目级gradle文件中添加:

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

在您的app-build gradle文件中:

 apply plugin: 'com.android.application' android { // ... } dependencies { // ... compile 'com.google.firebase:firebase-core:10.0.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' 

链接

在Docs中声明应该从Application调用FirebaseApp.initializeApp()。

您是否尝试创建和应用程序实例(如果您还没有),并从其onCreate()方法调用FirebaseApp.initializeApp(this)

首先确保您在Firebase控制台中注册了应用程序,并在应用程序中添加了google-services.json文件。

秒检查是否已添加所有依赖项 。 在App-bulid Gradle文件中添加以下依赖项: –

 buildscript { repositories { google() jcenter() } dependencies { classpath 'com.google.gms:google-services:4.0.0' } 

并添加项目级bulid gradle文件: –

 dependencies { implementation 'com.google.firebase:firebase-core:16.0.1' implementation 'com.google.firebase:firebase-auth:16.0.2' } apply plugin: 'com.google.gms.google-services' 

您需要在程序中添加initializeApp 。 我可以告诉你它是如何完成的。

首先创建一个新类并扩展Application

 public class SimpleBlog extends Application { @Override public void onCreate() { super.onCreate(); if(!FirebaseApp.getApps(this).isEmpty()) { FirebaseDatabase.getInstance().setPersistenceEnabled(true); } } 

最后,转到Manifest并在应用程序中添加如下:

  

这就是全部……

在我的案例中,Proguard引起了问题,所以这就是我所做的: – 如果AndroidManifest.xml中有任何带有"YourClass"".YourClass" ,请将其更改为完整的包名: "com.yourpackage.yourClass"

感谢这里的答案,当我遇到此错误时,我查看了可能出现问题的清单。

最后我意识到..我已经在Android Studio中启动了一个新模块,其名称与Firebase控制台上已经为我设置的Firebase实例注册的名称不同。 简单的错误 – 我忘了将新的包名添加到Console配置中。

在我做对了之后,它开始起作用了。 记住Firebase控制台预期的所有小细节有时候会很棘手..必须要警惕/ “配置认知”那里肯定

我也遇到了上述问题。 我下载了所有插件并使用NuGet检查了更新。 最后,我发现崩溃是由于应用程序包名称与Google Dev中指定的名称不匹配。

  • 确保为您的google-services.json分配了GoogleServicesJson的构建操作

  • 检查您的应用程序包名称是否与您在Google Dev Console中指定的名称相匹配

跟着这些步骤:

  1. 删除FirebaseApp.initializeApp(context); 因为您在较新版本的Firebase中不需要它
  2. 将包名称的应用添加到Firebase项目中。 使用您的软件包名称下载Google JSON文件,并将下载的文件添加到您的应用程序中
  3. 将指示的库添加到应用程序级别和项目级别gradle中
  4. 同步项目,您就可以使用Firebase了

有关详细信息,请参阅Firebase身份validation指南 。