如何防止Crashlytics在单个问题中将Java库中的所有异常捆绑在一起

时间:2019-01-17 09:12:54

标签: java android crashlytics sentry

我正在一个Android应用程序中使用Java库,该库运行各种(hamcrest)断言,如果出现故障,这些断言应记录到Crashlytics中。当然,Crashlytics不能直接包含在Java库中,因此该库必须调用某种已定义的工厂日志记录方法,该方法本身在应用程序中称为Crashlytics.logException(ex)。这样行之有效,并且在构建和发行类型中可以使用不同的日志记录方案,因此调试构建会在失败的断言时崩溃,而生产中的断言失败会将异常记录到Crashlytics。

问题在于断言在Crashlytics中全部归结为一个问题,大概是因为它们都使用了我自己的通用工厂方法来规避Java库中Crashlytics类的不可访问性。

我认为将这个问题汇总成一个问题可能是没有办法的(请不要讨论在prod中运行声明的好处或不进行讨论)。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我从Fabric那里听说,使用Crashlytics无法解决此问题。 更新:我现在正在使用Sentry,它可以解决此问题。现在,我可以从Java组件记录与Android应用程序记录的异常和其他解释性数据相同的记录。我与Sentry没有任何隶属关系,并且发现该文档比Google的文档差(尽管Google Crashlytics文档缺少imo)。这意味着它花费的时间比可能要迁移的时间长,但是现在使用它,我发现Sentry远远优于Crashlytics。与Fabric / Google产品相比,它具有更好的用户界面和更大的灵活性。 ACRA是另一种可行的方法,但我不想开始为此编写服务器实现代码。