既然ACRA.init只能调用一次,而ACRA.getConfig()和ACRA.getConfig().setFormUri(uri)都是deprecated.Is,那么一旦ACRA已经初始化,有什么正确的方法可以编程地更改formUri呢?
在我们的开发应用程序中,我们是针对几个环境进行测试的,我们有不同的formUris来存储formUri错误,所以每次我们切换到一个新的环境时,我们都必须重新配置ACRA,以便将所有的错误发送到那个formUri。
现在我们正在使用ACRA.getConfig().setFormUri(uri).
但是我们担心这在不远的将来是不可能的,那么还有其他的选择吗?
发布于 2016-04-28 21:59:44
没有允许ACRA多次初始化的计划。它会在组件中引入不必要的复杂性,您需要尽可能地做到坚如磐石。
但是您仍然能够以编程方式设置formUri。你只能设置一次。
显然,运行时有一些事件知道/确定您所处的环境。因此,您可以在此设置一个SharedPreference,概述目标formUri。重新启动应用程序,让formUri从SharedPreference中获得。
注:这是一个非常不寻常的用例。为什么您为一个应用程序的不同环境有一个单独的formUri?为什么不基于报表中的某些属性(如环境)进行一个错误回复和筛选报告?
IMHO为一个应用程序的开发版本和发布版本提供了独立的错误报告服务器,这是个负面消息,因为这意味着在开发和发布之间还有一件事情是不需要更改的。较少的运动部件,较少的复杂性==更强的健壮性。
发布于 2016-04-28 21:57:05
发布于 2018-07-03 00:54:33
5.2.0版本的ACRA将允许重新初始化,所以正确的方法是改变配置重新初始化.
具体来说,ACRA.init()会成功,但是在第一次出现后,它会对所有的用户发出严厉的警告,但是它会丢弃旧的配置,并从新的配置中获取设置。
https://stackoverflow.com/questions/36909342
复制相似问题