标签:打开 发送 automatic font ice -o mpi 接收 net
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}x
android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }}def acraVersion = ‘5.1.3‘def acraVersion = ‘5.1.3‘implementation "ch.acra:acra-http:$acraVersion"//Http
implementation "ch.acra:acra-mail:$acraVersion"//Email
implementation "ch.acra:acra-core:$acraVersion"//Customx
implementation "ch.acra:acra-http:$acraVersion"//Httpimplementation "ch.acra:acra-mail:$acraVersion"//Emailimplementation "ch.acra:acra-core:$acraVersion"//Customimplementation "ch.acra:acra-dialog:$acraVersion"//Dialog
implementation "ch.acra:acra-notification:$acraVersion"//Notification
implementation "ch.acra:acra-toast:$acraVersion"//Toast
//Silent:Add nothing.x
implementation "ch.acra:acra-dialog:$acraVersion"//Dialogimplementation "ch.acra:acra-notification:$acraVersion"//Notificationimplementation "ch.acra:acra-toast:$acraVersion"//Toast//Silent:Add nothing.implementation "ch.acra:acra-limiter:$acraVersion"implementation "ch.acra:acra-limiter:$acraVersion"implementation "ch.acra:acra-advanced-scheduler:$acraVersion"implementation "ch.acra:acra-advanced-scheduler:$acraVersion"@AcraCore(buildConfigClass = BuildConfig.class)
public class MyApplication extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
ACRA.init(this);
}
}x
(buildConfigClass = BuildConfig.class)public class MyApplication extends Application { protected void attachBaseContext(Context base) { super.attachBaseContext(base); ACRA.init(this); }}I addition to除了 the @AcraCore annotation, each plugin you added in the dependencies step provides another annotation, which you have to add to activate and configure that plugin:
PS:如果时重度用户,个人不建议通过注解配置各个插件,因为易读性太差;当然,如果只是简单的使用,不需要进行复杂的配置,则通过注解配置即可。CoreConfigurationBuilder builder = new CoreConfigurationBuilder(this);
builder.setBuildConfigClass(BuildConfig.class).setReportFormat(StringFormat.JSON);
builder.getPluginConfigurationBuilder(ToastConfigurationBuilder.class).setResText(R.string.acra_toast_text);
ACRA.init(this, builder);x
CoreConfigurationBuilder builder = new CoreConfigurationBuilder(this);builder.setBuildConfigClass(BuildConfig.class).setReportFormat(StringFormat.JSON);builder.getPluginConfigurationBuilder(ToastConfigurationBuilder.class).setResText(R.string.acra_toast_text);ACRA.init(this, builder);builder.getPluginConfigurationBuilder(ToastConfigurationBuilder.class).setEnabled(true);builder.getPluginConfigurationBuilder(ToastConfigurationBuilder.class).setEnabled(true);Available plugin builders:
def acraVersion = ‘5.1.3‘
implementation "ch.acra:acra-http:$acraVersion"//Http
implementation "ch.acra:acra-mail:$acraVersion"//Email
implementation "ch.acra:acra-core:$acraVersion"//Custom
implementation "ch.acra:acra-dialog:$acraVersion"//Dialog
implementation "ch.acra:acra-notification:$acraVersion"//Notification
implementation "ch.acra:acra-toast:$acraVersion"//Toastdef acraVersion = ‘5.1.3‘implementation "ch.acra:acra-http:$acraVersion"//Httpimplementation "ch.acra:acra-mail:$acraVersion"//Emailimplementation "ch.acra:acra-core:$acraVersion"//Customimplementation "ch.acra:acra-dialog:$acraVersion"//Dialogimplementation "ch.acra:acra-notification:$acraVersion"//Notificationimplementation "ch.acra:acra-toast:$acraVersion"//Toast@AcraCore(buildConfigClass = BuildConfig.class)
public class App extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
CoreConfigurationBuilder builder = new CoreConfigurationBuilder(this)
.setBuildConfigClass(BuildConfig.class)
.setReportFormat(StringFormat.JSON);
builder.getPluginConfigurationBuilder(ToastConfigurationBuilder.class)//吐司
.setLength(Toast.LENGTH_SHORT)
.setResText(R.string.acra_crash_tips)//或者setText
.setEnabled(true);
builder.getPluginConfigurationBuilder(DialogConfigurationBuilder.class)//弹窗
.setResIcon(R.drawable.icon)
.setResTheme(R.style.AppTheme)
.setTitle("标题")//setResTitle
.setText("内容\n\n呵呵呵呵呵呵呵呵")//setResText
.setCommentPrompt("CommentPrompt")//注释输入提示符的标签。setResCommentPrompt
.setEmailPrompt("EmailPrompt")// setResEmailPrompt
.setNegativeButtonText("NegativeButtonText")// setResNegativeButtonText
.setPositiveButtonText("PositiveButtonText")// setResPositiveButtonText
//.setReportDialogClass(BaseCrashReportDialog.class)//自定义CrashReportDialog
.setEnabled(true);
builder.getPluginConfigurationBuilder(MailSenderConfigurationBuilder.class)//发邮件。测试失败
.setMailTo("0909082401@163.com")
.setSubject("主题(崩溃日志)")//或者setResSubject
.setReportAsFile(true)
.setReportFileName("附件名称")
.setEnabled(false);//是通过跳到系统邮箱中,在用户预览并确认后由用户发出去的,而不是在后台默默发送的
builder.getPluginConfigurationBuilder(HttpSenderConfigurationBuilder.class)//HTTP请求。不知道怎么测试
.setHttpMethod(HttpSender.Method.POST)
.setConnectionTimeout(30 * 1000)
.setSocketTimeout(30 * 1000)
.setHttpHeaders(new HashMap<>())
.setBasicAuthLogin("")//认证
.setBasicAuthPassword("")
.setCertificatePath("")//证书地址。或者setResCertificate
.setCertificateType("")//证书类型
.setDropReportsOnTimeout(false)//超时是否删除报告
.setKeyStoreFactoryClass(KeyStoreFactory.class)//该类创建了可以包含可信证书的密钥库
.setEnabled(false);
builder.getPluginConfigurationBuilder(NotificationConfigurationBuilder.class)//通知栏。测试失败
.setResIcon(R.drawable.icon)
.setTitle("标题")//setResTitle
.setText("内容\n\n呵呵呵呵呵呵呵呵")
.setResSendButtonIcon(R.drawable.icon)
.setResSendButtonText(R.string.acra_crash_tips)
.setEnabled(false);
ACRA.init(this, builder);
}
}x
(buildConfigClass = BuildConfig.class)public class App extends Application { protected void attachBaseContext(Context base) { super.attachBaseContext(base); CoreConfigurationBuilder builder = new CoreConfigurationBuilder(this) .setBuildConfigClass(BuildConfig.class) .setReportFormat(StringFormat.JSON); builder.getPluginConfigurationBuilder(ToastConfigurationBuilder.class)//吐司 .setLength(Toast.LENGTH_SHORT) .setResText(R.string.acra_crash_tips)//或者setText .setEnabled(true); builder.getPluginConfigurationBuilder(DialogConfigurationBuilder.class)//弹窗 .setResIcon(R.drawable.icon) .setResTheme(R.style.AppTheme) .setTitle("标题")//setResTitle .setText("内容\n\n呵呵呵呵呵呵呵呵")//setResText .setCommentPrompt("CommentPrompt")//注释输入提示符的标签。setResCommentPrompt .setEmailPrompt("EmailPrompt")// setResEmailPrompt .setNegativeButtonText("NegativeButtonText")// setResNegativeButtonText .setPositiveButtonText("PositiveButtonText")// setResPositiveButtonText //.setReportDialogClass(BaseCrashReportDialog.class)//自定义CrashReportDialog .setEnabled(true); builder.getPluginConfigurationBuilder(MailSenderConfigurationBuilder.class)//发邮件。测试失败 .setMailTo("0909082401@163.com") .setSubject("主题(崩溃日志)")//或者setResSubject .setReportAsFile(true) .setReportFileName("附件名称") .setEnabled(false);//是通过跳到系统邮箱中,在用户预览并确认后由用户发出去的,而不是在后台默默发送的 builder.getPluginConfigurationBuilder(HttpSenderConfigurationBuilder.class)//HTTP请求。不知道怎么测试 .setHttpMethod(HttpSender.Method.POST) .setConnectionTimeout(30 * 1000) .setSocketTimeout(30 * 1000) .setHttpHeaders(new HashMap<>()) .setBasicAuthLogin("")//认证 .setBasicAuthPassword("") .setCertificatePath("")//证书地址。或者setResCertificate .setCertificateType("")//证书类型 .setDropReportsOnTimeout(false)//超时是否删除报告 .setKeyStoreFactoryClass(KeyStoreFactory.class)//该类创建了可以包含可信证书的密钥库 .setEnabled(false); builder.getPluginConfigurationBuilder(NotificationConfigurationBuilder.class)//通知栏。测试失败 .setResIcon(R.drawable.icon) .setTitle("标题")//setResTitle .setText("内容\n\n呵呵呵呵呵呵呵呵") .setResSendButtonIcon(R.drawable.icon) .setResSendButtonText(R.string.acra_crash_tips) .setEnabled(false); ACRA.init(this, builder); }}标签:打开 发送 automatic font ice -o mpi 接收 net
原文地址:https://www.cnblogs.com/baiqiantao/p/9157524.html