java - 如何使用 Android 和 Firebase 修复此错误
问题描述
我尝试编写代码将活动从 切换MainActivity
到SecondActivity
. 在 中,我在方法中SecondActivity
初始化了一个FirebaseFirestore
对象。onCreate()
我使用 activity_main.xml 中的按钮从 切换MainActivity
到SecondActivity
. 但是,我的应用程序崩溃了。单击按钮后,它没有进入 SecondActivity。我真的需要帮助来解决这个问题。我需要FirebaseFirestore
通过Secondctivity
.
我认为这次崩溃的主要原因是我在方法中初始化FirebaseFirestore
了对象。onCreate()
一旦我注释掉这个初始化,崩溃就消失了。
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:致命异常:主进程:com.example.hw1,PID:25341 java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.hw1/com.example.hw1.SecondActivity}:java.lang。 IllegalStateException:默认 FirebaseApp 未在此进程 com.example.hw1 中初始化。确保首先调用 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(本机方法)
在 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
原因:java.lang.IllegalStateException:默认 FirebaseApp 未在此进程 com.example.hw1 中初始化。确保首先调用 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(本机方法)
在 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
i/zygote:做部分代码缓存收集,code=16KB,data=20KB
代码缓存收集后,代码=16KB,数据=20KB
I/zygote:将代码缓存容量增加到128KB I/zygote:做部分代码缓存收集,code=16KB,data=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)
解决方案
You need call
FirebaseApp.initializeApp(Context);
before
db = FirebaseFirestore.getInstance();
推荐阅读
- javascript - ScrollView 分页问题
- android - 试图在 Android Studio 上运行一个 React 项目
- angular - 打印完整的原生元素与直接打印属性之间的差异
- powershell - Powershell 将数据转换为 json 进行解析
- google-chrome - 是否可以在谷歌浏览器中设置特定的 FPS 上限?
- python - selenium python中的下拉选项选择
- entity - Micronaut 3.0.3 中的 GormEntity 问题
- parsing - Haskell 解析,'<*' '*>' 如何解析分隔符之间的内容
- r - 聚合和绘图的缩短代码
- python - 对 Flask API 的 API 调用在 Postman 中有效,在 Flutter 中失败