使用getCurrentUser firebase auth的android-java.lang.NullPointerException

使用getCurrentUser firebase auth的android-java.lang.NullPointerException,java,android,firebase,firebase-realtime-database,firebase-authentication,Java,Android,Firebase,Firebase Realtime Database,Firebase Authentication,我在安卓应用程序上使用Firebase;在我的signupActivity.class中创建用户时,我更新当前用户用户名,并希望下一个活动MenuActivity.class获取当前用户Id和电子邮件,但我不断获取nullpointerException,错误如下: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sadainfo.apppfe/com.android.pfe.acti

我在安卓应用程序上使用Firebase;在我的
signupActivity.class
中创建用户时,我更新当前用户用户名,并希望下一个活动
MenuActivity.class
获取当前用户Id和电子邮件,但我不断获取nullpointerException,错误如下:

 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sadainfo.apppfe/com.android.pfe.activity.MenuActivity}: java.lang.NullPointerException
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2245)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2295)
     at android.app.ActivityThread.access$700(ActivityThread.java:150)
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280)
     at android.os.Handler.dispatchMessage(Handler.java:99)
     at android.os.Looper.loop(Looper.java:176)
     at android.app.ActivityThread.main(ActivityThread.java:5279)
     at java.lang.reflect.Method.invokeNative(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:511)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
     at dalvik.system.NativeStart.main(Native Method)

Caused by: java.lang.NullPointerException
     at com.android.pfe.activity.MenuActivity.onCreate(MenuActivity.java:89)
     at android.app.Activity.performCreate(Activity.java:5267)
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209)
我的
signupClass
创建用户的地方:

public class SignupActivity extends AppCompatActivity {
    private static final String TAG ="SignupActivity" ;
    private EditText mEmail,mPseudo,mMdp;
    private Button mEnregistrer;
    private FirebaseAuth auth;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getSupportActionBar().hide();
        auth=FirebaseAuth.getInstance();
        final ArrayList<String> arrayList;
        final ArrayAdapter<String> adapter;
        final EditText txtinput ;
        setContentView(R.layout.activity_signup);
        ListView listView = (ListView)findViewById(R.id.ListV);
        String [] item = {};
        arrayList = new ArrayList<>(Arrays.asList(item));
        adapter = new ArrayAdapter<String>(this,R.layout.list_item,R.id.txtitem,arrayList);
        listView.setAdapter(adapter);
        txtinput=(EditText)findViewById(R.id.txtinput);
        Button btadd = (Button)findViewById(R.id.btadd);
        btadd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String newitem = txtinput.getText().toString();
                arrayList.add(newitem);
                adapter.notifyDataSetChanged();
            }
        });

        setContentView(R.layout.activity_signup);
        mEmail=(EditText)findViewById(R.id.email);
        mPseudo=(EditText)findViewById(R.id.pseudo);
        mMdp=(EditText)findViewById(R.id.mdp);
        mEnregistrer=(Button) findViewById(R.id.enregCompte);

    mEnregistrer.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
             final String email = mEmail.getText().toString().trim();
            String password = mMdp.getText().toString().trim();
             final String pseudo =mPseudo.getText().toString().trim();

            if (TextUtils.isEmpty(pseudo)) {
                Toast.makeText(getApplicationContext(), "Entrer le pseudo", Toast.LENGTH_SHORT).show();
                return;
            }

            if (TextUtils.isEmpty(email)) {
                Toast.makeText(getApplicationContext(), "Entrer une adresse mail", Toast.LENGTH_SHORT).show();
                return;
            }

            if (TextUtils.isEmpty(password)) {
                Toast.makeText(getApplicationContext(), "Entrer un mot de passe", Toast.LENGTH_SHORT).show();
                return;
            }
            if (password.length() < 6) {
                Toast.makeText(getApplicationContext(), "mot de passe trop court, veuillez rentrer un minimum de 6 caractères", Toast.LENGTH_SHORT).show();
                return;
            }


            //créating account
            auth.createUserWithEmailAndPassword(email, password)
                    .addOnCompleteListener(SignupActivity.this, new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            //progressBar.setVisibility(View.GONE);

                            if (task.isSuccessful()) {

                                Toast.makeText(SignupActivity.this, "Inscription réussie " + task.isSuccessful(), Toast.LENGTH_SHORT).show();

                                FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
                                if(user!=null) {
                                    //changer les infos utilisateur
                                    UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder()
                                            .setDisplayName(pseudo)
                                            .build();

                                    user.updateProfile(profileUpdates)
                                            .addOnCompleteListener(new OnCompleteListener<Void>() {
                                                @Override
                                                public void onComplete(@NonNull Task<Void> task) {
                                                    if (task.isSuccessful()) {
                                                        Log.d(TAG, " profile updated.");
                                                    }
                                                }
                                            });
                                    User uti = new User();
                                    uti.addUser(user.getUid(), pseudo, email);

                                    startActivity(new Intent(SignupActivity.this, MenuActivity.class));
                                    finish();
                                }
                           //*****************************************************
                            } else {
                                Toast.makeText(SignupActivity.this, "erreur d'inscription" + task.getException().getMessage(),
                                        Toast.LENGTH_SHORT).show();


                            }
                        }
                    });
        }
    });

    }
调用
txtName.setText(auth.getCurrentUser().getDisplayName().toString().trim())时会发生错误
即使我用if语句测试了null

编辑:我把
txtName.setText(auth.getCurrentUser().getDisplayName().toString().trim())放进去
在if语句中,现在名称在第一次启动时没有显示,我需要停止并再次启动应用程序。如何在第一次调用您使用的
MenuActivity

时获取显示名称

txtName.setText(auth.getCurrentUser().getDisplayName().toString().trim()); setText(auth.getCurrentUser().getDisplayName().toString().trim()); 用这个代替

txtName.setText(auth.getInstance().getCurrentUser().getDisplayName().toString().trim());
txtName.setText(auth.getInstance().getCurrentUser().getDisplayName().toString().trim());显示名称可能为空在将其放入if语句后我第一次调用MenuActivity时未获取显示名称我需要停止并再次启动应用程序,第一次如何获取它?在更新配置文件时启动新活动,即您已记录“配置文件更新”的位置。一切都会好起来的。一切都会好起来的,非常感谢! txtName.setText(auth.getInstance().getCurrentUser().getDisplayName().toString().trim());