Android アプリで ACRA 4.4.0 を使用して、ユーザーからクラッシュ レポートを受け取ります。私の IDE は ADT Build: v22.2.1-833290 です。数日前、Google Play で公開する予定のアプリに ProGuard の使用を開始しました。エクスポートされた署名付き 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 なし) はうまく機能します。この問題を解決する方法はありますか? 前もって感謝します。マイケル。