You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio开发电商App调用currentOnlineUser.getName空指针如何解决

问题根因

报错指向Prevalent.currentOnlineUser.getName()调用时空指针,本质是你定义的静态变量public static Users currentOnlineUser从未被赋值初始化,默认值为null,直接调用方法就触发崩溃。

解决方案

1. 临时防崩溃处理(先解决闪退问题)

修改HomeActivity中设置用户名的代码,增加空判断逻辑:

View headerView = navigationView.getHeaderView(0);
TextView userNameTextView = headerView.findViewById(R.id.user_profile_name);
CircleImageView profileImageView = headerView.findViewById(R.id.user_profile_image);

// 新增空判断
if (Prevalent.currentOnlineUser != null) {
    userNameTextView.setText(Prevalent.currentOnlineUser.getName());
} else {
    // 未登录时显示默认值
    userNameTextView.setText("未登录");
}

2. 补全变量赋值逻辑

你需要在用户登录验证成功的节点,给静态变量赋值,示例代码:

// 假设你登录成功后拿到了后端返回的用户信息,构造Users实例
Users loginSuccessUser = new Users(nameFromServer, phoneFromServer, pwdFromServer);
// 赋值给静态变量,后续全局可以访问
Prevalent.currentOnlineUser = loginSuccessUser;

3. 增加登录拦截逻辑

避免未登录状态直接进入HomeActivity,在HomeActivity的onCreate方法最开头增加判断:

if (Prevalent.currentOnlineUser == null) {
    // 未登录跳转到登录页
    startActivity(new Intent(HomeActivity.this, LoginActivity.class));
    finish();
    return;
}

4. 持久化优化(解决进程被杀后重启崩溃问题)

静态变量会在APP进程被系统回收后清空,建议把用户信息存储到SharedPreferences,每次APP启动时读取赋值:

登录成功后存储用户信息

SharedPreferences sp = getSharedPreferences("app_user", MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("name", loginSuccessUser.getName());
editor.putString("phone", loginSuccessUser.getPhone());
editor.putString("pwd", loginSuccessUser.getPassword());
editor.apply();

启动时读取信息赋值(放在Application或启动页的onCreate中)

SharedPreferences sp = getSharedPreferences("app_user", MODE_PRIVATE);
String name = sp.getString("name", null);
String phone = sp.getString("phone", null);
String pwd = sp.getString("pwd", null);
if (name != null && phone != null) {
    Prevalent.currentOnlineUser = new Users(name, phone, pwd);
}

内容的提问来源于stack exchange,提问作者natasha rondot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 21:45:04