java.lang.NullPointerException: 不能在 child() 中传递参数 null 'pathString' ....应用程序崩溃



我的应用程序正在崩溃。。。

我不明白iS-it为什么会出现这个错误,以及我如何删除这个错误,以便应用程序开始工作。

在logcat中,它指出:java.lang.NullPointerException:不能为child((中的参数"pathString"传递null

2020-08-19 02:44:21.603 25163-25282.com。E/Parcel:此处不支持读取NULL字符串。

我的活动:

public class MainActivity extends AppCompatActivity {
private NavigationView navigationView;
private DrawerLayout drawerLayout;
private ActionBarDrawerToggle actionBarDrawerToggle;
private RecyclerView postList;
private Toolbar mToolbar;
private CircleImageView NavProfileImage;
private TextView NavProfileUserName;
private FirebaseAuth mAuth;
private DatabaseReference UsersRef;
String CurrentUserID;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mAuth = FirebaseAuth.getInstance();
CurrentUserID = mAuth.getCurrentUser().getUid();
UsersRef = FirebaseDatabase.getInstance().getReference().child("Users");
mToolbar = (Toolbar) findViewById(R.id.main_page_toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setTitle("Home");
drawerLayout = (DrawerLayout) findViewById(R.id.drawable_layout);
actionBarDrawerToggle = new ActionBarDrawerToggle(MainActivity.this, drawerLayout, R.string.drawer_open, R.string.drawer_closed);
drawerLayout.addDrawerListener(actionBarDrawerToggle);
actionBarDrawerToggle.syncState();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
navigationView = (NavigationView) findViewById(R.id.navigation_view);
View navView = navigationView.inflateHeaderView(R.layout.navigation_header);
NavProfileImage = (CircleImageView) navView.findViewById(R.id.nav_profile_image);
NavProfileUserName = (TextView) navView.findViewById(R.id.nav_user_full_name);
UsersRef.child(CurrentUserID).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if (snapshot.exists()) {
if (snapshot.hasChild("fullname")) {
String fullname = snapshot.child("fullname").getValue().toString();
NavProfileUserName.setText(fullname);
}
if (snapshot.hasChild("profileimage")) {
String image = snapshot.child("profileimage").getValue().toString();
Picasso.get().load(image).placeholder(R.drawable.ic_profile_pic_grey).into(NavProfileImage);
}
else {
Toast.makeText(MainActivity.this, "Profile name does not exist...", Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
UserMenuSelector(item);
return false;
}
});
}

我的日志:

2020-08-19 02:44:21.603 25163-25282/com.app E/Parcel: Reading a NULL string not supported here.

2020-08-19 02:44:21.666 25163-25280/co.app V/FA:onActivityCreated2020-08-19 02:44:21.828 25163-25336/com.appi V/FA:连接到远程服务2020-08-19 02:44:21.887 25163-25336/com.app V/FA:连接尝试已在进行中2020-08-19 02:44:21.949 25163-25336/?V/FA:连接尝试已在进行中2020-08-19 02:44:21.953 25163-25163/?W/ActionBarDrawerToggle:DrawerToggle可能不会显示,因为NavigationIcon不可见。您可能需要调用actionbar.setDisplayHomeAsUpEnabled(true(;2020-08-19 02:44:21.969 25163-25163/?D/OpenGL渲染器:Skia GL管道2020-08-19 02:44:21.969 25163-25163/?D/MMListParser:联机版本-1默认版本201911012020-08-19 02:44:21.970 25163-25163/?D/mmscene:打开服务器配置失败/data/opo/medial/opp_display_perf_list.xml2020-08-19 02:44:21.971 25163-25163/?D/mmscene:getHint applicationScene=com.appinion,idx=0 none2020-08-19 02:44:21.981 25163-25163/?D/AndroidRuntime:关闭VM2020-08-19 02:44:21.985 25163-25163/?E/AndroidRuntime:致命异常:main流程:com.app,PID:25163java.lang.RuntimeException:无法启动活动ComponentInfo{com.app.com/app.MainActivity}:java.lang.NullPointerException:无法为child((中的参数"pathString"传递null在android.app.ActivityThread.performLaunchActivity(ActivityThreads.java:3146(在android.app.ActivityThread.handleLaunchActivity(ActivityThreads.java:3296(在android.app.servertransaction.LaunchActivityItem.exexecute(LaunchActivityItem.java:78(在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:114(在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:74(在android.app.ActivityThread$H.handleMessage(ActivityThreads.java:1994(在android.os.Handler.dispatchMessage(Handler.java:106(在android.os.Looper.loop(Looper.java:226(在android.app.ActivityThread.main(ActivityThreads.java:7224(位于java.lang.reflect.Method.ioke(本机方法(网址:com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:500(网址:com.android.internal.os.ZygoteInit.main(ZygoteNit.java:913(由以下原因引起:java.lang.NullPointerException:无法为child((中的参数"pathString"传递null网址:com.google.firebase.database.DatabaseReference.child(DatabaseReference.java:96(网址:com.appinion.MainActivity.onCreate(MainActivity.java:72(在android.app.Activity.performCreate(Activity.java:7337(在android.app.Activity.performCreate(Activity.java:7328(在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272(在android.app.ActivityThread.performLaunchActivity(ActivityThreads.java:3126(在android.app.ActivityThread.handleLaunchActivity(ActivityThreads.java:3296(在android.app.servertransaction.LaunchActivityItem.exexecute(LaunchActivityItem.java:78(在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:114(在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:74(在android.app.ActivityThread$H.handleMessage(ActivityThreads.java:1994(在android.os.Handler.dispatchMessage(Handler.java:106(在android.os.Looper.loop(Looper.java:226(在android.app.ActivityThread.main(ActivityThreads.java:7224(位于java.lang.reflect.Method.ioke(本机方法(网址:com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:500(网址:com.android.internal.os.ZygoteInit.main(ZygoteNit.java:913(2020-08-19 02:44:21.999 25163-25163/?I/Process:发送信号。PID:25163 SIG:9

告诉我哪里错了。。。请帮帮我……

谢谢。。。

错误消息告诉您在对child()的调用中传递了null。在代码中,只有一个地方可能出现空值:

UsersRef.child(CurrentUserID).addValueEventListener(new ValueEventListener() {

这意味着CurrentUserID在此处使用时为null。这意味着mAuth.getCurrentUser().getUid()在您调用它时为null。这意味着用户当时没有登录。在像这样使用它之前,您应该检查null。

最新更新