关于Firebase Crashlytics上报Unity异常及重复集成的疑问
关于Unity与Firebase Crashlytics集成的问题解答
问题1:向Android应用添加Firebase Crashlytics SDK,能否上报Unity产生的异常?
不能直接上报。Unity运行时的异常是在其专属执行环境(Mono或IL2CPP虚拟机)中抛出的,原生Android的Firebase Crashlytics SDK仅能捕获Android系统层、原生代码层的崩溃与异常,无法感知Unity虚拟机内部的应用逻辑异常。
问题2:由Unity导出的Android项目集成Firebase Crashlytics后,能否上报Unity中的异常?若同时在Unity及导出的Android项目中导入Firebase Crashlytics,是否会引发问题?
- 导出的Android项目集成原生Crashlytics后,仍无法直接捕获Unity中的异常。原因和问题1一致:原生SDK无法穿透Unity的执行环境捕获其内部异常。如果要上报Unity异常,需要在Unity代码中手动捕获所有未处理异常,再通过JNI调用将异常信息传递给原生层的Crashlytics进行上报。
- 同时在Unity端和导出的Android项目中导入Firebase Crashlytics肯定会引发问题:两边的SDK会存在重复的依赖包、类定义,编译阶段会出现「类重复」的报错;即使侥幸编译通过,运行时也可能出现初始化冲突、上报逻辑混乱等未知问题,严重时会导致应用崩溃。
内容的提问来源于stack exchange,提问作者RedpandaKing
相关产品推荐
相关产品推荐

