Fabric Crashlytics迁移Firebase后无法上传崩溃日志
解决Fabric Crashlytics迁移Firebase后崩溃日志不上传的问题
嘿,我之前帮朋友排查过几乎一模一样的迁移问题,给你整理几个关键的排查方向,应该能解决你的问题:
彻底清掉旧Fabric的残留痕迹
这是最常见的坑!很多人迁移时只加了Firebase的依赖,没删干净旧Fabric的东西,导致冲突:- 删掉项目里的
fabric.properties文件,这个是旧Fabric的配置文件,留着会干扰Firebase初始化 - 检查根项目和app模块的build.gradle,把所有Fabric相关的classpath、插件和依赖全删掉,只保留Firebase Crashlytics的依赖,比如:
// 只保留这个Firebase Crashlytics依赖(建议用最新版本) implementation 'com.google.firebase:firebase-crashlytics:29.0.0' - 打开AndroidManifest.xml,删掉所有Fabric相关的meta-data(比如原来的
io.fabric.ApiKey)和多余权限
- 删掉项目里的
换掉旧的崩溃测试代码
你现在用的Crashlytics.getInstance().crash();是旧Fabric的API,迁移后要改用Firebase的版本:FirebaseCrashlytics.getInstance().crash();另外,现在Firebase Crashlytics默认是自动初始化的,不需要再手动调用
Fabric.with()这类代码了,把旧的初始化代码也删掉吧排查网络相关的问题
那个E/Fabric: Error performing auto configuration的Http异常,大概率是网络请求被拦了:- 确保App的AndroidManifest.xml里有这两个权限:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> - 如果测试时用了代理或者VPN,先关掉试试,很多代理会阻止Crashlytics的上传请求
- 公司网络的防火墙也可能拦截,换个手机流量或者家里的网络测试
- 确保App的AndroidManifest.xml里有这两个权限:
确认Firebase控制台的配置
- 先去Firebase控制台,进入你的项目→「质量」→「Crashlytics」,确认已经启用了这个服务(首次进入需要按照提示完成启用步骤)
- 检查google-services.json文件是不是从Firebase控制台最新下载的,而且文件里的包名和你App的包名完全一致,一点拼写错误都不能有
调整测试的姿势
- 崩溃后别立刻重启App!给它个3-5秒的时间上传日志,有时候崩溃后进程直接被杀,来不及上传
- 或者崩溃后手动重启App,Crashlytics会在下次启动时自动上传上次的崩溃日志
- 另外,Firebase的日志不是实时的,最多可能等10分钟才会在控制台显示,别刚崩溃就急着去看
看完整的异常堆栈
把那个E/Fabric: Error performing auto configuration的完整堆栈信息打出来,看具体是啥错误:- 如果是401/403,那就是密钥或者项目配置不匹配,重新下载google-services.json试试
- 如果是连接超时,那就是网络环境的问题,换个网络再测
内容的提问来源于stack exchange,提问作者ejay
相关产品推荐
相关产品推荐

