ACRA以编程方式更改formUri

时间:2016-04-28 08:33:57

标签: android acra

由于 ACRA.init 只能调用一次而 ACRA.getConfig() ACRA.getConfig().setFormUri(uri) 都已弃用。一旦ACRA已初始化,是否有任何正确的方法可以以编程方式更改formUri?

在我们的开发应用程序中,我们正在针对多个环境进行测试,并且我们有不同的formUris来存储ACRA错误,因此每次我们更改为新环境时,我们必须重新配置ACRA以将所有错误发送到该formUri。

目前我们正在使用 ACRA.getConfig().setFormUri(uri).

但是我们担心在不久的将来这是不可能的,所以还有其他选择吗?

3 个答案:

答案 0 :(得分:1)

没有计划允许ACRA多次初始化。它会为你需要尽可能坚如磐石的组件引入不必要的复杂性。

但您仍然可以通过编程方式设置formUri。你只能设置一次。

您在运行时明确知道/确定您所处的环境。您可以在此时设置一个SharedPreference,概述目标formUri。重新启动应用程序,让formUri来自SharedPreference。

注意这是一个非常不寻常的用例。为什么一个应用程序的不同环境有单独的formUri?为什么不根据报告中的某些属性(例如环境?

)使用单个错误repo和过滤报告

IMHO为应用程序的开发和发布版本提供了单独的错误报告服务器,这是一个净负面因素,因为这意味着您在开发和发布之间还有一件事情是您不需要的。运动部件减少,复杂性降低= =更强健。

答案 1 :(得分:0)

  

但我们担心这在将来不可能实现

你是对的,4.9.0删除了setFormUri

  

还有其他选择吗?

目前没有。您可以观看讨论here

答案 2 :(得分:0)

The 5.2.0 version of ACRA will allow re-initialization,因此正确的方法是更改​​配置以重新初始化。

具体来说,ACRA.init()将成功,但会在第一次之后对所有init发出严厉警告,但是它将丢弃旧配置并从新配置中进行设置。