如何修复空指针异常 Firebase Auth
How to fix Null pointer exception Firebase Auth
我正在尝试使用 FirebaseAuth 从当前经过身份验证的用户检索并显示用户名,但应用程序崩溃并出现 NullPointerException
我试图在控制台中显示 user.getDisplayName() 但它不是 Null
ImageView profilePicView = findViewById(R.id.profile_pic);
TextView nameView = findViewById(R.id.name);
TextView emailView = findViewById(R.id.email);
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
if (user.getDisplayName() != null) {
System.out.println("------------------------------user display name : " + user.getDisplayName());
nameView.setText(user.getDisplayName());
}
if (user.getEmail() != null) {
emailView.setText(user.getEmail());
}
if (user.getPhotoUrl() != null) {
Glide.with(this)
.load(user.getPhotoUrl())
.into(profilePicView);
}
}
这是堆栈错误
I/System.out: ------------------------------user display name : Mohammed Elmahdi Bechlaghem
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.megadevbrain.ranahna, PID: 20913
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.megadevbrain.ranahna/com.megadevbrain.ranahna.Navigation}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3121)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3264)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1955)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7076)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at com.megadevbrain.ranahna.Navigation.onCreate(Navigation.java:52)
at android.app.Activity.performCreate(Activity.java:7327)
at android.app.Activity.performCreate(Activity.java:7318)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1275)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3101)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3264)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1955)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7076)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
I/Process: Sending signal. PID: 20913 SIG: 9
Process 20913 terminated.
空指针试图说你的Textview是空的。发生这种情况是因为 findviewbyid 与 XML 上的正确的不匹配。请确保您的 ID 与您的 XML 和 the.Java java 文件
匹配
您必须在调用对象的方法中使用 Thread。
'nameView' 或 'emailView' 变量为空。请检查 R.id.name 和 R.id.email 在当前视图 xml 中是否有效 TextView。
我正在尝试使用 FirebaseAuth 从当前经过身份验证的用户检索并显示用户名,但应用程序崩溃并出现 NullPointerException
我试图在控制台中显示 user.getDisplayName() 但它不是 Null
ImageView profilePicView = findViewById(R.id.profile_pic);
TextView nameView = findViewById(R.id.name);
TextView emailView = findViewById(R.id.email);
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
if (user.getDisplayName() != null) {
System.out.println("------------------------------user display name : " + user.getDisplayName());
nameView.setText(user.getDisplayName());
}
if (user.getEmail() != null) {
emailView.setText(user.getEmail());
}
if (user.getPhotoUrl() != null) {
Glide.with(this)
.load(user.getPhotoUrl())
.into(profilePicView);
}
}
这是堆栈错误
I/System.out: ------------------------------user display name : Mohammed Elmahdi Bechlaghem
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.megadevbrain.ranahna, PID: 20913
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.megadevbrain.ranahna/com.megadevbrain.ranahna.Navigation}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3121)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3264)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1955)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7076)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at com.megadevbrain.ranahna.Navigation.onCreate(Navigation.java:52)
at android.app.Activity.performCreate(Activity.java:7327)
at android.app.Activity.performCreate(Activity.java:7318)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1275)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3101)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3264)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1955)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7076)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
I/Process: Sending signal. PID: 20913 SIG: 9
Process 20913 terminated.
空指针试图说你的Textview是空的。发生这种情况是因为 findviewbyid 与 XML 上的正确的不匹配。请确保您的 ID 与您的 XML 和 the.Java java 文件
匹配您必须在调用对象的方法中使用 Thread。
'nameView' 或 'emailView' 变量为空。请检查 R.id.name 和 R.id.email 在当前视图 xml 中是否有效 TextView。