繁体   English   中英

如何使用 Android 和 Firebase 修复此错误

[英]How to fix this error with Android and Firebase

我尝试编写代码将活动从MainActivity切换到SecondActivity SecondActivity ,我在onCreate()方法中初始化了一个FirebaseFirestore对象。 我使用 activity_main.xml 中的按钮从MainActivity切换到SecondActivity 但是,我的应用程序崩溃了。 单击按钮后,它没有转到 SecondActivity。 我真的需要帮助来解决这个问题。 我需要通过Secondctivity FirebaseFirestore对象将一些数据写入Secondctivity

我认为这次崩溃的主要原因是我在onCreate()方法中初始化了FirebaseFirestore对象。 一旦我注释掉这个初始化,崩溃就消失了。

public class SecondActivity extends AppCompatActivity {

    EditText name;
    EditText age;
    private static final String TAG = "SecondActivity";
    FirebaseFirestore db;
    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second2);
        name = findViewById(R.id.name);
        age = findViewById(R.id.age);
        button = findViewById(R.id.button2);
        Toast.makeText(this, "testing", Toast.LENGTH_SHORT).show();
        db = FirebaseFirestore.getInstance();
    }
}

错误如下。

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.hw1, PID: 25341 java.lang.RuntimeException: Unable to start Activity ComponentInfo{com.example.hw1/com.example.hw1.SecondActivity}: java.lang. IllegalStateException:在此进程 com.example.hw1 中未初始化默认 FirebaseApp。 确保首先调用 FirebaseApp.initializeApp(Context)。

在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)

在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)

在 android.app.ActivityThread.-wrap11(未知来源:0)

在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)

在 android.os.Handler.dispatchMessage(Handler.java:105)

在 android.os.Looper.loop(Looper.java:164)

在 android.app.ActivityThread.main(ActivityThread.java:6541)

在 java.lang.reflect.Method.invoke(Native Method)

在 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)

在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

引起:java.lang.IllegalStateException:在这个进程com.example.hw1中没有初始化默认FirebaseApp。 确保首先调用 FirebaseApp.initializeApp(Context)。

在 com.google.firebase.FirebaseApp.getInstance(com.google.firebase:firebase-common@@16.1.0:245)

在 com.google.firebase.firestore.FirebaseFirestore.getInstance(com.google.firebase:firebase-firestore@@18.2.0:70)

在 com.example.hw1.SecondActivity.onCreate(SecondActivity.java:37)

在 android.app.Activity.performCreate(Activity.java:6975)

在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)

在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)

在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)

在 android.app.ActivityThread.-wrap11(未知来源:0)

在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)

在 android.os.Handler.dispatchMessage(Handler.java:105)

在 android.os.Looper.loop(Looper.java:164)

在 android.app.ActivityThread.main(ActivityThread.java:6541)

在 java.lang.reflect.Method.invoke(Native Method)

在 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)

在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

I/zygote:做部分代码缓存收集,代码=16KB,数据=20KB

代码缓存收集后,代码=16KB,数据=20KB

I/zygote:增加代码缓存容量到128KB I/zygote:做部分代码缓存收集,代码=16KB,数据=37KB

代码缓存收集后,代码=16KB,数据=37KB

将代码缓存容量增加到 256KB

I/zygote:JIT 为 void android.widget.TextView.(android.content.Context, android.util.AttributeSet, int, int) 的编译代码分配了 71KB

编译器分配了 4MB 来编译 void android.widget.TextView.(android.content.Context, android.util.AttributeSet, int, int)

你需要打电话

FirebaseApp.initializeApp(Context);

db = FirebaseFirestore.getInstance();

请参阅FirebaseApp解释,我认为不需要像建议的错误日志那样在代码中调用initializeApp ,除非您使用不同的 Firebase 项目。 我认为问题出在您的程序的初始化过程中,或者您的项目配置错误,例如,错误/损坏的google-services.json文件、Firebase 控制台中设置的错误包名称或其他问题可能会导致问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM