Я использую ACRA 4.4.0 в своих приложениях для Android, чтобы получать отчеты о сбоях от пользователей. Моя среда разработки — ADT Build: v22.2.1-833290. Несколько дней назад я начал использовать ProGuard для приложений, которые собираюсь опубликовать в Google Play. Когда я устанавливаю и запускаю экспортированный подписанный apk, возникает ошибка NoSuchFieldError для полей, используемых в отчетах ACRA. Мой код:
@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);
}
}
Включение «-keep public class org.acra.*» в proguard-project.txt не дает никакого эффекта. Как я вижу в GoogleDocs, возможная причина в том, что Proguard некорректно работает с динамическими полями и методами. Оптимизированный APK (без ACRA) работает хорошо. Есть ли способ решить эту проблему? Заранее спасибо. Майкл.