Java 空对象引用上的android.text.Editable android.widget.EditText.getText()

Java 空对象引用上的android.text.Editable android.widget.EditText.getText(),java,android,nullpointerexception,crash,Java,Android,Nullpointerexception,Crash,我创建了一个应用程序,在其中我创建了登录和注册活动,并对其java文件进行了编码。当我执行它,并点击注册后填写所有细节,应用程序突然关闭。然后,我在Run面板中搜索了该问题及其下面的错误。我尽了我所能,但找不到主要原因。请帮我澄清这个问题。我受够了。下面的错误显示在register.java中 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.marvi, PID: 28256 java.lang.NullP

我创建了一个应用程序,在其中我创建了登录和注册活动,并对其java文件进行了编码。当我执行它,并点击注册后填写所有细节,应用程序突然关闭。然后,我在Run面板中搜索了该问题及其下面的错误。我尽了我所能,但找不到主要原因。请帮我澄清这个问题。我受够了。下面的错误显示在register.java中

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.marvi, PID: 28256
    java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
        at com.example.marvi.register$1.onClick(register.java:67)
        at android.view.View.performClick(View.java:6256)
        at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:992)
        at android.view.View$PerformClick.run(View.java:24701)
        at android.os.Handler.handleCallback(Handler.java:789)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6541)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
package com.example.marvi;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.firestore.DocumentReference;
import com.google.firebase.firestore.FirebaseFirestore;

import java.util.HashMap;
import java.util.Map;

public class register extends AppCompatActivity {
    public static final String TAG = "TAG";
    EditText mfullname,memail,mpass,mphone;
    FirebaseAuth fAuth;
    RadioButton mcheckmale,mcheckfemale;
    String userID;
    String gender="";
    FirebaseFirestore fStore;

    Button mlogin;
    TextView mcreate , mforgot;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);



        mfullname = findViewById(R.id.name);
        memail = findViewById(R.id.email);
        mpass   = findViewById(R.id.pass);
        mphone      = findViewById(R.id.number);
        mcheckmale= findViewById(R.id.malebtn);
        mcheckfemale  = findViewById(R.id.femalebtn);
        fStore = FirebaseFirestore.getInstance();
        fAuth = FirebaseAuth.getInstance();

        mlogin = findViewById(R.id.signbtn);
        mcreate = findViewById(R.id.create);
        mforgot = findViewById(R.id.forgot);

        if(fAuth.getCurrentUser() !=null){
            Toast.makeText(register.this, "user created", Toast.LENGTH_SHORT).show();
            finish();
        }

        mlogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String email = memail.getText().toString().trim();
                String password = mpass.getText().toString().trim();



                if(TextUtils.isEmpty(email)){
                    memail.setError("Email is Required.");
                    return;
                }

                if(TextUtils.isEmpty(password)){
                    mpass.setError("Password is Required.");
                    return;
                }

                if(password.length() < 6){
                    mpass.setError("Password Must be >= 6 Characters");
                    return;
                }

                if(mcheckmale.isChecked()){
                    gender="Male";
                }
                if(mcheckfemale.isChecked()){
                    gender="Female";
                }

                fAuth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if(task.isSuccessful()){
                            Toast.makeText(register.this, "user created", Toast.LENGTH_SHORT).show();
                            userID = fAuth.getCurrentUser().getUid();
                            DocumentReference documentReference = fStore.collection("users").document(userID);
                            Map<String,Object> user = new HashMap<>();
                            user.put("email",email);
                            user.put("pass",password);
                            user.put("gender",gender);


                            documentReference.set(user).addOnCompleteListener(new OnCompleteListener<Void>() {
                                @Override
                                public void onComplete(@NonNull Task<Void> task) {
                                    Log.d(TAG, "onSuccess: user profile is created for " +userID);

                                }
                            });

                            startActivity(new Intent(getApplicationContext(),MainActivity.class));

                        }else{
                            Toast.makeText(register.this, "Error !"+task.getException().getMessage(), Toast.LENGTH_SHORT).show();
                        }
                    }
                });
            }
        });



        mcreate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(getApplicationContext(),login.class));
                finish();
            }
        });


    }
}
谁能告诉我,为什么会这样

login.java

package com.example.marvi;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;

public class login extends AppCompatActivity {
    EditText memail , mpass ;
    FirebaseAuth fAuth;

    Button mlogin;
    TextView mcreate , mforgot;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        mlogin = findViewById(R.id.signbtn);
        mcreate = findViewById(R.id.create);
        mforgot = findViewById(R.id.forgot);
        fAuth = FirebaseAuth.getInstance();
        memail = findViewById(R.id.email);
        mpass = findViewById(R.id.passbox);

        mlogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String email = memail.getText().toString().trim();
                String password = mpass.getText().toString().trim();

                if(TextUtils.isEmpty((email))){
                    memail.setError("E-mail is required");
                }

                if(TextUtils.isEmpty((password))){
                    memail.setError("Password is required");
                }

                if(password.length() <6){
                    mpass.setError("Password must be > 6");
                }

                //authenticate
                fAuth.signInWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                    @Override
                    public void onComplete(@NonNull Task<AuthResult> task) {
                        if(task.isSuccessful()){
                            Toast.makeText(login.this, "Logged in successfully", Toast.LENGTH_SHORT).show();
                            startActivity(new Intent(getApplicationContext(),MainActivity.class));

                        }else{
                            Toast.makeText(login.this, "Error !"+ task.getException().getMessage(), Toast.LENGTH_SHORT).show();
                        }
                    }
                });

            }
        });



        mcreate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(getApplicationContext(),register.class));
                finish();
            }
        });



    }
}
   
package com.example.marvi;
导入androidx.annotation.NonNull;
导入androidx.appcompat.app.appcompat活动;
导入android.content.Intent;
导入android.os.Bundle;
导入android.text.TextUtils;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.TextView;
导入android.widget.Toast;
导入com.google.android.gms.tasks.OnCompleteListener;
导入com.google.android.gms.tasks.Task;
导入com.google.firebase.auth.AuthResult;
导入com.google.firebase.auth.FirebaseAuth;
公共类登录扩展了AppCompatActivity{
EditText memail,MPAS;
弗斯;
按钮登录;
TextView McCreate,mforgot;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u登录);
mlogin=findviewbyd(R.id.signbtn);
mcreate=findviewbyd(R.id.create);
mforgot=findviewbyd(R.id.d);
fAuth=FirebaseAuth.getInstance();
memail=findviewbyd(R.id.email);
mpass=findViewById(R.id.passbox);
mlogin.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
字符串email=memail.getText().toString().trim();
字符串密码=mpass.getText().toString().trim();
如果(TextUtils.isEmpty((电子邮件))){
memail.setError(“需要电子邮件”);
}
if(TextUtils.isEmpty((密码))){
memail.setError(“需要密码”);
}

如果(password.length()在onCreate()方法上像这样实例化编辑文本:


editText的Register类上的引用错误。 您试图引用的“id=memail”是错误布局上的名称。请使用不同的名称,而不是使用相同的名称来调用这两个名称。或者使用不同的id名称来表示不同的布局。例如


EditText android:id=“@+id/editTextEmail

memail和MPAS从未实例化过我这样做了,但仍然会导致应用程序崩溃,我还添加了我的register.java,其中错误显示您调用了setContentView(R.layout.activity_register),然后,memail=findViewById(R.id.email);EditText@+id/email是activity_register.xml布局的一部分吗?
memail = findViewById(R.id.yourEmailFieldID);
mpass = findViewById(R.id.yourPasswordFieldID);