我第一次尝试配置ACRA。我遵循了基本安装指南:
1。将acra jar文件集成到我的应用程序
2。创建了一个扩展应用程序类的新类,并添加了以下代码:
@ReportsCrashes(formKey = "", // will not be used
mailTo = "mymailId@gmail.com")
public class MyApplication extends Application
{
@Override
public void onCreate()
{
super.onCreate();
ACRA.init(this);
}
}
3。对清单文件
进行所有必要的更改似乎一切都做对了,我能够在logcat中得到以下内容:
12-21 14:59:10.994: D/ACRA(28728): ACRA is enabled for com.android.demo.notepad1, intializing...
12-21 14:59:11.064: D/ACRA(28728): Using default Mail Report Fields
12-21 14:59:11.064: D/ACRA(28728): Looking for error files in /data/data/com.android.demo.notepad1/files
12-21 14:59:11.074: W/ACRA(28728): **com.android.demo.notepad1 reports will be sent by email (if accepted by user).**
但是我没有收到任何邮件:(!
据我所知,mailTo选项需要用户才能发送电子邮件。当发生错误时,必须打开另一个邮件客户端(例如Gmail.apk)来处理崩溃报告并发送电子邮件。因此,错误将打开一个邮件客户端,我们需要用户点击发送按钮。
虽然有点晚,但有人可能会觉得它很有用…
我确实至少有一个类似的问题与ACRA 4.5.0,我能够解决一旦所有其他配置选项实际上设置。这意味着& &;虽然部分标记为可选的& &;我必须给以下选项一个值(在@ReportsCrashes
注释中)
-
resDialogText = R.string.crash_dialog_text, // Text to display upon crash
-
resDialogIcon = android.R.drawable.ic_dialog_info, //optional (apparently not). default is a warning sign
-
resDialogTitle = R.string.crash_dialog_title, // optional (apparently not). default is your application name
-
resDialogCommentPrompt = R.string.crash_dialog_comment_prompt, // optional (apparently not). when defined, adds a user text field input with this text resource as a label
-
resDialogOkToast = R.string.crash_dialog_ok_toast // optional (apparently not). displays a Toast message when the user accepts to send a report.
虽然我有mode = ReportingInteractionMode.DIALOG,
设置,这可能是我的问题的根源至少。
没有使用"mailTo"字段,只使用了@ReportsCrashes(formKey = "formkey")
确保从google drive中正确获取表单密钥在崩溃时,你会得到谷歌驱动器excel文件的报告还要确保你已经添加了互联网权限,并在mainfeast
<manifest ...>
<application ... android:name="MyApplication">
...
</application>
<uses-permission android:name="android.permission.INTERNET">
</uses-permission>
</manifest>
详细说明在这里http://acra.ch/