由于 ACRA.init
只能调用一次而 ACRA.getConfig()
和 ACRA.getConfig().setFormUri(uri)
都已弃用。一旦ACRA
已初始化,是否有任何正确的方法可以以编程方式更改formUri?
在我们的开发应用程序中,我们正在针对多个环境进行测试,并且我们有不同的formUris来存储ACRA错误,因此每次我们更改为新环境时,我们必须重新配置ACRA以将所有错误发送到该formUri。
目前我们正在使用 ACRA.getConfig().setFormUri(uri).
但是我们担心在不久的将来这是不可能的,所以还有其他选择吗?
答案 0 :(得分:1)
没有计划允许ACRA多次初始化。它会为你需要尽可能坚如磐石的组件引入不必要的复杂性。
但您仍然可以通过编程方式设置formUri。你只能设置一次。
您在运行时明确知道/确定您所处的环境。您可以在此时设置一个SharedPreference,概述目标formUri。重新启动应用程序,让formUri来自SharedPreference。
注意这是一个非常不寻常的用例。为什么一个应用程序的不同环境有单独的formUri?为什么不根据报告中的某些属性(例如环境?
)使用单个错误repo和过滤报告IMHO为应用程序的开发和发布版本提供了单独的错误报告服务器,这是一个净负面因素,因为这意味着您在开发和发布之间还有一件事情是您不需要的。运动部件减少,复杂性降低= =更强健。
答案 1 :(得分:0)
答案 2 :(得分:0)
The 5.2.0 version of ACRA will allow re-initialization,因此正确的方法是更改配置以重新初始化。
具体来说,ACRA.init()
将成功,但会在第一次之后对所有init发出严厉警告,但是它将丢弃旧配置并从新配置中进行设置。