簡體   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