Android Studio Java接入Firebase做登录注册跳转Activity崩溃,OnClickListener灰显
问题排查及解决方法
1. OnClickListener代码灰色失效问题
- 根因:代码中未对
mRegisterBtn做控件绑定初始化,仅通过findViewById关联了mName、mEmail、mPassword、mLoginBtn四个控件,注册按钮对象为空,IDE判定该段点击事件代码永远无法执行,因此标灰提示。 - 修复方案:在现有
findViewById代码块的对应位置添加注册按钮绑定逻辑:
mRegisterBtn = findViewById(R.id.此处替换为你布局文件中注册按钮对应的id);
2. Activity跳转崩溃问题
按优先级排查以下场景:
- 空指针异常(最高概率):未初始化的
mRegisterBtn调用setOnClickListener方法时直接触发空指针异常,完成上述控件绑定后即可解决 - 目标Activity未注册:跳转目标
menuAwal没有在AndroidManifest.xml中注册,需要在manifest的application节点下添加注册代码:
<activity android:name=".menuAwal" android:exported="false" />
如果menuAwal是应用入口页面,需将exported属性改为true
- Firebase配置异常:检查项目app目录下是否导入了Firebase控制台生成的
google-services.json配置文件,同时确认Firebase后台身份验证模块中已经开启了「电子邮件/密码」登录权限 - 可选优化:注册成功跳转页面时补充
finish()方法,避免用户按返回键退回注册页:
if(task.isSuccessful()){ Toast.makeText(registerActivity.this, "User created", Toast.LENGTH_SHORT).show(); startActivity(new Intent(getApplicationContext(),menuAwal.class)); finish(); }
内容的提问来源于stack exchange,提问作者Trandafir
相关产品推荐
相关产品推荐

