Crashlytics无法接收Android Instant App上报的错误报告问题排查
该问题可以修复,Crashlytics本身支持Instant App,你只需要做以下几处调整即可:
1. Manifest中显式声明网络权限
Instant App要求必须显式声明所有用到的权限,普通安装版默认携带INTERNET权限不会触发异常,但Instant App需要手动添加权限,在AndroidManifest.xml的manifest节点下添加:
<uses-permission android:name="android.permission.INTERNET" />
2. 开启Crashlytics的Instant App适配开关
Crashlytics默认关闭Instant App支持,需要在应用级build.gradle的android节点同级位置添加配置:
firebaseCrashlytics { instantAppSupport true }
该开关会让Crashlytics插件生成适配Instant App沙箱存储规则的配置,避免崩溃报告生成后无法读取上报的问题。
3. 主动触发未发送报告上报(可选)
Instant App的进程优先级较低,崩溃后会被系统快速回收,可能来不及自动触发上报,你可以在MainActivity的onCreate方法初始化Crashlytics之后,主动调用上报接口:
mCrashlytics.sendUnsentReports();
4. 升级Firebase BOM版本(可选)
你当前使用的28.4.2版本BOM对应的Crashlytics存在部分Instant App上报兼容性问题,可以将BOM版本升级到30.0.0以上,对应版本修复了DataTransport组件在Instant App沙箱下的上传异常问题。
完成以上调整后重新打包测试,Instant App模式下的崩溃就可以正常上报到Crashlytics后台。
内容的提问来源于stack exchange,提问作者Roman Kononenko
相关产品推荐
相关产品推荐

