由于,ACRA.init
,只能被调用一次,并且,ACRA.getConfig()
,和,ACRA.getConfig().setFormUri(uri)
,都已被弃用。一旦已经初始化了ACRA
,是否有任何正确的编程方式更改formUri?
在我们的开发应用程序中,我们正在针对多个环境进行测试,并且我们具有不同的formUris来存储ACRA错误,因此,每次更改到新环境时,我们都必须重新配置ACRA,以将所有错误发送到该formUri。
现在,我们正在使用 ACRA.getConfig().setFormUri(uri).
但是我们担心这在不久的将来将无法实现,因此还有其他选择吗?
最佳答案
没有计划允许ACRA多次初始化。它将不必要的复杂性引入到您需要尽可能坚如磐石的组件中。
但是您仍然可以以编程方式设置formUri。您只能设置一次。
您显然会在运行时遇到一些事件,该事件知道/确定您所处的环境。因此,您可以在此时设置一个SharedPreference,以概述目标formUri。重新启动应用程序,并让formUri来自SharedPreference。
注意这是一个非常不寻常的用例。为什么要针对一个应用程序在不同的环境中使用单独的formUri?为什么不具有单个错误回购并根据报告中的某些属性(例如环境)过滤报告?
恕我直言,即使应用的开发版本和发布版本都具有单独的错误报告服务器,这实际上是负面的,因为这意味着在开发版本和发布版本之间您不需要进行其他更改。更少的 Activity 部件,更少的复杂性==更高的耐用性。