gpt4 book ai didi

android - ACRA 未创建报告

转载 作者:行者123 更新时间:2023-11-30 01:24:22 25 4
gpt4 key购买 nike

我已经在我的应用程序中实现了 ACRA 4.8.5,它已初始化并启用,但当我遇到错误时,它不会创建报告...我仅有的两个相关 ACRA 日志是:

I/ACRA: ACRA is enabled for com.mydomain.myapp, initializing...

E/ACRA: ACRA caught a RuntimeException for com.mydomain.myapp

我的应用程序类中有这个

@ReportsCrashes(reportSenderFactoryClasses = {ACRASenderFactory.class})

@Override
public void onCreate() {
super.onCreate();
ACRA.init(this);
}

这是我的 ACRASenderFactory 类

public class ACRASenderFactory implements ReportSenderFactory {
public ACRASenderFactory(){
Log.e("ACRA", "Create Sender Factory");
}
@NonNull
@Override
public ReportSender create(Context context, ACRAConfiguration acraConfiguration) {
Log.e("ACRA", "Return Report Sender");
return new ACRAReportSender();
}
}

这是我的 ACRAReportSender 类

public class ACRAReportSender implements ReportSender {
public ACRAReportSender(){
Log.e("ACRA", "Report Sender created");
}
@Override
public void send(Context context, CrashReportData crashReportData) throws ReportSenderException {
Log.e("ACRA", "Trying to send crash report");
String reportBody = createCrashReport(crashReportData);
// Send body using email
Intent emailIntent = new Intent(Intent.ACTION_SEND);
// Set type to "email"
emailIntent.setType("vnd.android.cursor.dir/email");
String to[] = {"me@mydomain.com"};
emailIntent.putExtra(Intent.EXTRA_EMAIL, to);
// Text
emailIntent.putExtra(Intent.EXTRA_TEXT, reportBody);
// Set the subject
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "ACRA Crash Report");
context.startActivity(Intent.createChooser(emailIntent, "Send crash to developpers by email ..."));
}
private String createCrashReport(CrashReportData crashReportData){
StringBuilder body = new StringBuilder();
body.append("Device : " + crashReportData.getProperty(ReportField.BRAND) + " - " + crashReportData.getProperty(ReportField.PHONE_MODEL))
.append("\n")
.append("Android Version : " + crashReportData.getProperty(ReportField.ANDROID_VERSION))
.append("\n")
.append("App Version : " + crashReportData.getProperty(ReportField.APP_VERSION_CODE))
.append("\n")
.append("STACK TRACE : \n" + crashReportData.getProperty(ReportField.STACK_TRACE));
return body.toString();
}
}

我真的不知道为什么它不起作用。我还在我的 list 中允许互联网并设置了我的应用程序名称。

任何帮助将不胜感激!谢谢!

最佳答案

正如在 ACRA GitHub 问题上所讨论的,ACRA 已经作为 AAR 发布了一段时间。因此,您需要构建并包含 AAR,而不是 JAR(您必须从 AAR 中挖出它)。

ACRA 需要 Android 服务和资源才能运行。

关于android - ACRA 未创建报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36627462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com