Acra Package不是一个常量错误(Android Studio)

时间:2014-03-13 20:31:31

标签: android android-studio crash-reports acra

我正在尝试在我的应用中使用Acra,我遇到了以下问题。我试图检查Acra的源代码,但仍然无法弄清楚问题。我在Google上找不到任何其他内容。现在我被困在这两天了。我知道它应该是非常简单的东西,但我无法看到它。我觉得额外的一双眼睛可以帮助我。

03-13 12:52:37.588      332-332/? D/ACRA﹕ ACRA is enabled for com.myapp.application, intializing...
03-13 12:52:37.598      332-332/? D/ACRA﹕ Looking for error files in /data/data/com.myapp.application/files
03-13 12:52:37.598      332-332/? D/ACRA﹕ Looking for error files in /data/data/com.myapp.application/files
03-13 12:52:37.608      332-332/? V/ACRA﹕ About to start ReportSenderWorker from #checkReportOnApplicationStart
03-13 12:52:37.608      332-350/? D/ACRA﹕ #checkAndSendReports - start
03-13 12:52:37.608      332-350/? D/ACRA﹕ Looking for error files in /data/data/com.myapp.application/files
03-13 12:52:37.608      332-350/? I/ACRA﹕ Sending file 1f0d91c8-ca49-4de3-82ac-236d6337a2d1.stacktrace
03-13 12:52:37.618      332-350/? E/ACRA﹕ Failed to send crash reports for 1f0d91c8-ca49-4de3-82ac-236d6337a2d1.stacktrace
    java.lang.IllegalArgumentException: Package is not a constant in org.acra.ReportField
            at java.lang.Enum.valueOf(Enum.java:198)
            at org.acra.CrashReportPersister.load(CrashReportPersister.java:264)
            at org.acra.CrashReportPersister.load(CrashReportPersister.java:75)
            at org.acra.SendWorker.checkAndSendReports(SendWorker.java:140)
            at org.acra.SendWorker.run(SendWorker.java:77)
03-13 12:52:37.618      332-350/? D/ACRA﹕ #checkAndSendReports - finish

这是我的申请文件

@ReportsCrashes(
 formKey = "",
 mailTo = "myemail@anoviceguy.com",
 reportType = org.acra.sender.HttpSender.Type.JSON,
 mode = ReportingInteractionMode.TOAST,
 forceCloseDialogAfterToast = false, // optional, default false
 resToastText = R.string.error_something_went_wrong,
)
public class MyApplication extends Application {

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

@Override
public void onTerminate() {
    super.onTerminate();
}

}

1 个答案:

答案 0 :(得分:0)

好的,在阅读之前生成的崩溃报告时,它遇到了一大块数据' Package'它认为是ReportField的一个实例。但是没有ReportField.PACKAGE所以它会崩溃。

崩溃有两种可能的原因。

  1. 生成的崩溃报告已损坏。
  2. 您之前有配置指定了要输出的定制字段列表,其中包含一个名为' PACKAGE'的字段。和ACRA在没有数据的情况下添加了该字段(因为它不了解该字段)。
  3. 在任何一种情况下,解决方案都是清除app的数据。 在第二种情况下,可以说ACRA可以更好地编写崩溃报告,从而以更好的方式忽略无效配置。记录ACRA的问题。