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

Java 如何解决Android Firebase错误;默认FirebaseApp未在此过程中初始化";?,java,android,firebase,firebase-realtime-database,firebase-authentication,Java,Android,Firebase,Firebase Realtime Database,Firebase Authentication,我正在使用FirebaseAuth进行用户注册,并带有电子邮件和密码,我已经在我的项目中添加了插件和依赖项 MainActivity.java public class MainActivity extends AppCompatActivity implements View.OnClickListener { EditText ed_email, ed_pass; Button but_login; ProgressDialog progressDialog; FirebaseAuth fi

我正在使用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<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> 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();
}
我的应用程序未启动,并显示以下错误:

java.lang.IllegalStateException: Default FirebaseApp is not initialized in this 
process com.skapsdevelopment.firebase. 
Make sure to call FirebaseApp.initializeApp(Context) first.
为什么应用程序启动不正常?

中说明应从应用程序调用FirebaseApp.initializeApp()


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

您需要在程序中添加initializeApp。我可以教你怎么做

首先创建一个新类并扩展
应用程序

public class SimpleBlog extends Application {

@Override
public void onCreate() {
    super.onCreate();
    if(!FirebaseApp.getApps(this).isEmpty()) {
        FirebaseDatabase.getInstance().setPersistenceEnabled(true);
    }
}
最后,转到清单并按如下方式添加应用程序:

<application
    android:name=".SimpleBlog"  <------
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

再次检查以下内容,因为这对我很有效:

在项目级渐变文件中添加:

buildscript {
    // ...
    dependencies {
        // ...
        classpath 'com.google.gms:google-services:3.0.0'
    }
}
并在您的应用程序构建渐变文件中:

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' 

在我的案例中,Proguard造成了问题,所以我就是这么做的:
-如果AndroidManifest.xml中有任何类带有
“YourClass”
“.YourClass”
,请将其更改为其完整的包名:
“com.yourpackage.YourClass”
,感谢这里的答案,我在遇到此错误时查看了可能出现的问题的检查列表

最后我意识到。。我在AndroidStudio中启动了一个新模块,它的包名与我设置的Firebase实例在Firebase控制台上注册的包名不同。简单的错误-我忘了在控制台配置中添加新的包名


我搞定了之后,它开始工作了。记住Firebase Console所期望的所有小细节有时会很棘手。。一定要保持警惕,我也面临着上述问题。我下载了所有插件,并用NuGet检查更新。最后,我发现崩溃是由于应用程序包名称与Googledev中指定的名称不匹配

  • 确保为您的google-services.json分配了构建操作 谷歌服务公司

  • 检查您的应用程序包名称是否与您选择的应用程序包名称匹配 在Google开发控制台中分配


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

然后检查是否添加了所有的依赖项。 在应用程序bulid Gradle文件中添加以下依赖项:-

buildscript {

repositories {
    google()
    jcenter()
}
dependencies {
    classpath 'com.google.gms:google-services:4.0.0'
    }
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'    
并添加到项目级bulid gradle文件中:-

buildscript {

repositories {
    google()
    jcenter()
}
dependencies {
    classpath 'com.google.gms:google-services:4.0.0'
    }
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'    
遵循以下步骤:

  • 删除
    FirebaseApp.initializeApp(上下文)因为在较新版本的Firebase中不需要它
  • 将包名为的应用程序添加到Firebase项目中。使用您的软件包名称下载Google JSON文件,并将下载的文件添加到您的应用程序中
  • 将说明的库添加到应用程序级和项目级渐变中
  • 同步项目,即可使用Firebase

  • 有关更多信息,请参见。

    请添加此类路径'com.google.gms:google services:4.0.1'
    在classpath'com.google.gms:google services:4.1.0'的位置

    在项目的build.gradle中将谷歌服务插件从4.1.0版降级到4.0.1版

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

    派对有点晚了,但我想分享我的解决方案。希望它能帮助别人

    几个小时前,我也遇到了类似的问题。这里什么都试过了,但都没用。我所有的依赖项都是正确的,这毫无意义


    我不知道的是这个应用程序需要在Firebase中注册。我一步一步地跟着这个,瞧!它起作用了!不要使用推荐的类路径依赖项,请确保使用此依赖项
    com.google.gms:googleservices:4.2.0

    对我有效的是:

  • 添加
    FirebaseApp.initializeApp(此)onCreate()
    方法上的code>

  • 降级
    com.google.gms:google srvices
    项目级
    build.gradle
    从4.2.0到4.0.0

  • 这正在改变:

    dependencies {
    
            classpath 'com.android.tools.build:gradle:3.3.2'
    
            classpath 'com.google.gms:google-services:4.2.0'
    }
    
    致:


    在应用程序的项目级
    build.gradle
    内部依赖项中添加以下行

    classpath'com.google.gms:googleservices:4.3.5'

    然后添加以下行作为应用程序模块级别的最后一行
    build.gradle

    应用插件:“com.google.gms.google服务”

    现在,同步两个
    gradle
    文件,就可以开始了

    我希望这能解决你的问题


    快乐编码:)

    我尝试了上面所有可用的方法,但都没有完全解决这个问题。我 他这样做:

  • 在您的
    pubspec.yaml
    中添加
    firebase\u core:
    。从中添加最新版本
  • 二,。现在,打开main.dart,然后按如下方式修改代码:

       import 'package:firebase_core/firebase_core.dart';
       import 'package:flutter/material.dart';
    
          void main() async {
            WidgetsFlutterBinding.ensureInitialized();
            await Firebase.initializeApp();
            runApp(MyApp());
       }
    

    您只需在应用程序中调用一次Firebase.initializeApp()

    是的。。。我也在这样做。但仍然得到同样的错误。这是我的onCreate()方法:`protectedvoid onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);FirebaseApp.initializeApp(this);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=newprogressDialog(this);}`我正在使用FirebaseAuth注册电子邮件和密码。是否需要像在onCreate()中写的那样添加FirebaseDatabase上述方法?否,FirebaseApp仅适用于注册应用程序