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

Android点击登录应用黑屏无响应 提示X-Firebase-Locale值为null错误

问题排查与修复方案

System: Ignoring header X-Firebase-Locale because its value was null. 属于Firebase SDK输出的普通警告,和你遇到的点击登录后黑屏ANR问题没有直接关联,不用优先排查该警告。

你代码中存在以下可导致ANR的问题,按优先级修复即可:

  • 账号密码读取时机错误
    你当前写的Email = etEmail.getText().toString()、Password = etPassword.getText().toString()如果是在Activity初始化阶段执行,读取到的永远是输入框默认的空值,传入空参数调用signInWithEmailAndPassword会触发Firebase内部异常校验,引发后续逻辑异常。
    修复方法:将这两行代码移动到登录按钮的点击回调方法内部,点击登录时再实时读取输入框内的用户输入内容。

  • SharedPreferences操作阻塞主线程
    你连续调用了两次editor.commit(),commit()属于同步IO操作,会直接阻塞当前主线程,当SP文件体积较大时就会导致主线程卡死,触发黑屏ANR。同时你在clear()后立即执行的第一次commit()属于完全无用的冗余操作。
    修复方法:删掉冗余的commit,推荐用异步提交的apply()替代commit(),完全不会阻塞主线程,优化后的代码如下:

sharedPreferences = getSharedPreferences("file", 0);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear();
editor.putString("email", Email);
editor.putString("password", Password);
editor.putString("google", "no");
editor.apply();
  • 补充日志排查其他问题
    如果修复上述问题后仍然存在异常,可在登录失败的else分支添加异常日志打印,明确登录环节是否有其他报错:
Log.e("LoginFail", "登录失败", task.getException());

另外需要自行排查跳转目标CalendarActivity的生命周期方法中是否存在耗时同步操作(如大量IO、复杂计算、主线程网络请求等),这类操作是ANR最常见的诱因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:24:08