我最近将ACRA升级到4.5.0版本,并且我的自定义ReportSender中的发送方法不再被调用。
通过查看日志,它看起来像是试图将崩溃报告上传到Google Docs。
我把我们的一些代码包含在下面。
自定义ReportSender:
public class AcraPassportSender implements ReportSender {
...
public AcraPassportSender(int versionCode, boolean isStoreVersion){
...
}
@Override
public void send(CrashReportData report) throws ReportSenderException {
PLog.i(TAG, "Attempting to create and upload a bug report");
...
}
}
应用程序类:
@ReportsCrashes(formKey="")
public class MyApp extends Application {
@Override
public void onCreate() {
ACRA.init(this);
AcraPassportSender acsender = new AcraPassportSender(version, isStoreVersion);
ACRA.getErrorReporter().setReportSender(acsender);
}
}
日志显示ACRA初始化。在我升级ACRA之前,这是有效的。你知道这里会发生什么吗?
你可以在ACRA的网站上找到以下句子:
自从Google最近更新了Google表单,Google的使用文档作为ACRA报告的存储引擎现在不支持了。
据我所知,Google Forms是ACRA中默认的崩溃报告方法。你可以看看GitHub上的ACRA项目,并尝试使用不同于Google Forms的报告方法。
此外,我建议您使用像Crashlytics这样的工具,它比ACRA更好,允许您收集崩溃报告并监视应用程序。请注意,Crashlytics已被Twitter收购,现在可以在fabric下使用。io域。您还可以使用付费工具,如Bugsnag或创建您自己的报告解决方案。
ACRA的最新版本是4.6.2。我建议升级到那个版本。
在4.6.0中删除了GoogleFormSender。除此之外,很难知道发生了什么,因为你没有为你的发送者发布代码,也没有发布你的日志。
我建议先升级到4.6.2,然后重新评估。