| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- package com.guiying.module;
- import android.content.Context;
- import android.support.multidex.MultiDex;
- import com.alibaba.android.arouter.launcher.ARouter;
- import com.guiying.module.common.base.BaseApplication;
- import com.guiying.module.common.utils.Utils;
- import org.acra.ACRA;
- import org.acra.ReportField;
- import org.acra.ReportingInteractionMode;
- import org.acra.annotation.ReportsCrashes;
- import org.acra.collector.CrashReportData;
- import org.acra.sender.EmailIntentSender;
- import org.acra.sender.ReportSender;
- import org.acra.sender.ReportSenderException;
- /**
- * <p>这里仅需做一些初始化的工作</p>
- *
- * @author 张华洋 2017/2/15 20:14
- * @version V1.2.0
- * @name MyApplication
- */
- @ReportsCrashes(
- mailTo = "guiying705@Gmail.com",
- mode = ReportingInteractionMode.DIALOG,
- customReportContent = {
- ReportField.APP_VERSION_NAME,
- ReportField.ANDROID_VERSION,
- ReportField.PHONE_MODEL,
- ReportField.CUSTOM_DATA,
- ReportField.BRAND,
- ReportField.STACK_TRACE,
- ReportField.LOGCAT,
- ReportField.USER_COMMENT},
- resToastText = R.string.crash_toast_text,
- resDialogText = R.string.crash_dialog_text,
- resDialogTitle = R.string.crash_dialog_title)
- public class MyApplication extends BaseApplication {
- @Override
- public void onCreate() {
- super.onCreate();
- if (Utils.isAppDebug()) {
- //开启InstantRun之后,一定要在ARouter.init之前调用openDebug
- ARouter.openDebug();
- ARouter.openLog();
- }
- ARouter.init(this);
- //崩溃日志记录初始化
- ACRA.init(this);
- ACRA.getErrorReporter().removeAllReportSenders();
- ACRA.getErrorReporter().setReportSender(new CrashReportSender());
- }
- @Override
- protected void attachBaseContext(Context base) {
- super.attachBaseContext(base);
- // dex突破65535的限制
- MultiDex.install(this);
- }
- /**
- * 发送崩溃日志
- */
- private class CrashReportSender implements ReportSender {
- CrashReportSender() {
- ACRA.getErrorReporter().putCustomData("PLATFORM", "ANDROID");
- ACRA.getErrorReporter().putCustomData("BUILD_ID", android.os.Build.ID);
- ACRA.getErrorReporter().putCustomData("DEVICE_NAME", android.os.Build.PRODUCT);
- }
- @Override
- public void send(Context context, CrashReportData crashReportData) throws ReportSenderException {
- EmailIntentSender emailSender = new EmailIntentSender(getApplicationContext());
- emailSender.send(context, crashReportData);
- }
- }
- }
|