簡體   English   中英

Android:將數據上傳到Firebase后,應用崩潰

[英]Android: App is crashing after uploading data to Firebase

有2個Edittext框和1個按鈕。 只需單擊該按鈕,數據就被上傳到了Firebase上,但該應用程序卻崩潰了。

我什至不知道出了什么問題。 一切看起來都正確。 只有1個EditText時,一切工作正常。 但是在添加另一個應用程序后,該應用程序崩潰了。 這是代碼:

public View onCreateView(LayoutInflater paramLayoutInflater, ViewGroup paramViewGroup, Bundle paramBundle) {
        this.localView = paramLayoutInflater.inflate(R.layout.fragmentupload, paramViewGroup, false);
    t1 = (TextView) localView.findViewById(R.id.submit_title);
    userstoryText = (EditText) localView.findViewById(R.id.user_story);
    usernameText = (EditText) localView.findViewById(R.id.user_name);
    submitbtn = (Button) localView.findViewById(R.id.submit_story);
    rl = (RelativeLayout) localView.findViewById(R.id.upload_layout);
    databaseReference = FirebaseDatabase.getInstance().getReference();
    submitbtn.setOnClickListener(this);
    return localView;

}

public void onClick(View v)
{
    if(userstoryText.getText().toString().isEmpty())
    {
        Toast.makeText(getActivity(),"the storybox is empty", Toast.LENGTH_SHORT).show();
        return;
    } else
    {
        AddData();
    }

}

public void AddData()
{
    String Story = userstoryText.getText().toString().trim();
    String Uname = usernameText.getText().toString().trim();

    HashMap<String, String> dataMap = new HashMap<String, String>();
    dataMap.put("username", Uname);
    dataMap.put("storytext" , Story);

    databaseReference.push().setValue(dataMap).addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {

            if (task.isSuccessful())
            {
                userstoryText.setText("");
                usernameText.setText("");
                Toast.makeText(getActivity(),"Submitted Successfully",Toast.LENGTH_SHORT).show();

            }
        }
    });
}

這是錯誤日志

    05-23 15:13:54.651 1314-1348/? E/BufferQueueProducer: [InputMethod] cancelBuffer: slot 1 is not owned by the producer (state = ACQUIRED)
05-23 15:14:04.780 1314-1348/? E/BufferQueueProducer: [InputMethod] cancelBuffer: slot 1 is not owned by the producer (state = ACQUIRED)
05-23 15:14:35.889 12168-12168/com.dcreativity.scribbledstories E/UncaughtException: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference
                                                                                         at android.view.LayoutInflater.from(LayoutInflater.java:232)
                                                                                         at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:181)
                                                                                         at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:166)
                                                                                         at com.dcreativity.scribbledstories.DataDisplayAdapter.<init>(DataDisplayAdapter.java:26)
                                                                                         at com.dcreativity.scribbledstories.FragmentHome$1.onDataChange(FragmentHome.java:77)
                                                                                         at com.google.android.gms.internal.to.zza(Unknown Source)
                                                                                         at com.google.android.gms.internal.vj.zzHX(Unknown Source)
                                                                                         at com.google.android.gms.internal.vp.run(Unknown Source)
                                                                                         at android.os.Handler.handleCallback(Handler.java:751)
                                                                                         at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                         at android.os.Looper.loop(Looper.java:154)
                                                                                         at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                                         at java.lang.reflect.Method.invoke(Native Method)
                                                                                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)


                                                                                     --------- beginning of crash
05-23 15:14:35.889 12168-12168/com.dcreativity.scribbledstories E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                  Process: com.dcreativity.scribbledstories, PID: 12168
                                                                                  java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference
                                                                                      at android.view.LayoutInflater.from(LayoutInflater.java:232)
                                                                                      at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:181)
                                                                                      at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:166)
                                                                                      at com.dcreativity.scribbledstories.DataDisplayAdapter.<init>(DataDisplayAdapter.java:26)
                                                                                      at com.dcreativity.scribbledstories.FragmentHome$1.onDataChange(FragmentHome.java:77)
                                                                                      at com.google.android.gms.internal.to.zza(Unknown Source)
                                                                                      at com.google.android.gms.internal.vj.zzHX(Unknown Source)
                                                                                      at com.google.android.gms.internal.vp.run(Unknown Source)
                                                                                      at android.os.Handler.handleCallback(Handler.java:751)
                                                                                      at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                      at android.os.Looper.loop(Looper.java:154)
                                                                                      at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                                      at java.lang.reflect.Method.invoke(Native Method)
                                                                                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
05-23 15:14:37.443 2305-2387/com.google.android.googlequicksearchbox:search E/AudioRecord: Could not get audio input for session 3521, record source 1999, sample rate 16000, format 0x1, channel mask 0x10, flags 0
05-23 15:14:37.455 2305-2387/com.google.android.googlequicksearchbox:search E/AudioRecord-JNI: Error creating AudioRecord instance: initialization check failed with status -22.
05-23 15:14:37.455 2305-2387/com.google.android.googlequicksearchbox:search E/android.media.AudioRecord: Error code -20 when initializing native AudioRecord object.
05-23 15:14:37.455 2305-2387/com.google.android.googlequicksearchbox:search E/ActivityThread: Failed to find provider info for com.google.android.apps.gsa.testing.ui.audio.recorded
05-23 15:14:42.523 2305-2387/com.google.android.googlequicksearchbox:search E/AudioRecord: Could not get audio input for session 3529, record source 1999, sample rate 16000, format 0x1, channel mask 0x10, flags 0
05-23 15:14:42.523 2305-2387/com.google.android.googlequicksearchbox:search E/AudioRecord-JNI: Error creating AudioRecord instance: initialization check failed with status -22.

在錯誤日志中,這兩行用藍色下划線突出顯示。 一個擴展片段。 在此處輸入圖片說明

在此處輸入圖片說明

您在程序中傳遞了兩個編輯文本參數,因此請嘗試為usernameText添加條件條件。

if(userstoryText.getText().toString().isEmpty())
    {
        Toast.makeText(getActivity(),"the storybox is empty", Toast.LENGTH_SHORT).show();
        return;
    } 
 else if(usernameText.getText().toString().isEmpty())
    {
        Toast.makeText(getActivity(),"the usernamebox is empty", Toast.LENGTH_SHORT).show();
        return;
    } 

 else
    {
        AddData();
    }

如果不起作用,請為問題添加錯誤日志

要解決此問題,請更改以下代碼行:

Toast.makeText(getActivity(),"the storybox is empty", Toast.LENGTH_SHORT).show();

Toast.makeText(getContext(),"the storybox is empty", Toast.LENGTH_SHORT).show();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM