我在我的 Android 应用程序中使用 ACRA 4.4.0 来接收来自用户的崩溃报告。我的 IDE 是 ADT Build:v22.2.1-833290。几天前,我开始将 ProGuard 用于我要在 Google Play 上发布的应用程序。当我安装并开始导出已签名的 apk 时,ACRA 报告中使用的字段会出现 NoSuchFieldError。我的代码是:
@ReportsCrashes(formKey = <my_key>,
mailTo = <my_email>,
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);
}
}
在 proguard-project.txt 中包含“-keep public class org.acra.*”没有任何效果。正如我在 GoogleDocs 中看到的,可能的原因是 Proguard 不能与动态引用的字段和方法一起正常工作。优化的 APK(没有 ACRA)效果很好。有没有办法解决这个问题?提前致谢。迈克尔。