Firebase Auth登录页面崩溃求助:LoginActivity初始化mAuth失败
检查Firebase配置文件
确认google-services.json已放在app模块的/app目录下,文件内的project_id、api_key等信息要和Firebase控制台的项目完全匹配。多模块项目要注意配置文件的放置路径,或者在gradle中正确指定。验证Gradle依赖配置
检查app模块的build.gradle文件,确保引入了Firebase Auth的依赖,且版本和其他Firebase组件保持一致:implementation 'com.google.firebase:firebase-auth:22.3.1' // 替换为当前稳定版本同时确认根build.gradle里包含Google服务插件:
classpath 'com.google.gms:google-services:4.4.0' // 使用对应兼容版本另外,app模块的build.gradle末尾要添加Google服务插件的引用(AGP 7.0+可在plugins块声明):
apply plugin: 'com.google.gms.google-services'排查上下文有效性
FirebaseAuth.getInstance()需要有效的Application或Activity上下文,确保调用这句代码时,LoginActivity已经完成onCreate()的初始化流程,不要在非UI线程或者未初始化的上下文环境中调用。如果是在自定义Application类里做初始化,要确保这个类已经在AndroidManifest.xml中正确注册:<application android:name=".MyApplication" ...>规范Firebase初始化时机
不要重复手动调用FirebaseApp.initializeApp(this);,Firebase会自动在App启动时完成初始化。如果必须手动初始化,要放在Application的onCreate()方法中,且只调用一次,重复调用可能导致冲突。分析完整崩溃堆栈
除了行号,重点看Logcat里的异常类型和堆栈信息:- 若为
FirebaseApiNotAvailableException:大概率是设备缺少Google Play服务或版本过低,测试时改用带Google服务的模拟器或真机。 - 若为
IllegalStateException:通常是上下文无效,或者Firebase未完成正确初始化。
- 若为
如果以上方法仍未解决问题,可以提供完整的崩溃堆栈日志和build.gradle配置代码,方便进一步定位。
内容的提问来源于stack exchange,提问作者Sachin Bhujbal

