我试图将崩溃报告从我的应用程序发送到我的域或邮件,但仍然失败。
为了得到邮件中的故障报告,我做了
@报告皮疹(
formKey = "",
mailTo = "abc@gmail.com"
)
结果是,发送文件1372758321000-批准的堆叠
checkAndSendReports-完成
为了在我的域中获得崩溃报告,我做了
@报告皮疹(
formKey = "",
formUri = "http://www.abc.com/test1"
)
结果是,发送文件1372856882000-approved.stacktrace未能发送1372856882000批准的崩溃报告。stacktraceorg.cra.sender.ReportSenderException:通过Http POST 发送FORM报告时出错
任何帮助对我来说都是方便和感激的。
ACRA适用于我通过电子邮件发送报告,而我完全按照他们在文档中所说的去做:
@ReportsCrashes(mailTo = "reports@yourdomain.com", // my email here
mode = ReportingInteractionMode.TOAST,
resToastText = R.string.crash_toast_text)
https://github.com/ACRA/acra/wiki/Report-Destinations#sending-通过电子邮件报告
你可能忘记了吐司部分。或者可能是你没有电子邮件程序(比如当你在模拟器上运行时)。
我认为不再支持通过谷歌文档发送报告。
您的应用程序类应该是这样的。
import android.app.Application;
import org.acra.ACRA;
import org.acra.ReportField;
import org.acra.ReportingInteractionMode;
import org.acra.annotation.ReportsCrashes;
@ReportsCrashes(mailTo = "user@domain.com", customReportContent = {
ReportField.APP_VERSION_CODE, ReportField.APP_VERSION_NAME,
ReportField.ANDROID_VERSION, ReportField.PHONE_MODEL,
ReportField.CUSTOM_DATA, ReportField.STACK_TRACE, ReportField.LOGCAT},
mode = ReportingInteractionMode.TOAST, resToastText = R.string.crash_toast_text)
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
ACRA.init(this);
}
}
不,不像Alex说的那样,mode属性与报告类型无关,你可以在github的源代码中看到它使用mailTo类型,您应该确保:
- 您的应用程序具有连接网络的权限
- 在你的设备中有一个电子邮件程序,就像亚历克斯说的那样
- 您是否在应用程序的oncreate()中调用了ACRA.init(this)方法
如果所有这些都完成了,那么运行您的应用程序,它会提示您配置电子邮件,例如用户名和密码等。