Android Crashlytics для обнаружения приложения внезапно уничтожены и исчезли - PullRequest
0 голосов
/ 16 октября 2018

В моем приложении у меня есть 3 действия,

1-Splash, 2-MainActivity, 3-Audio Activity.

В Audio Activity я использую ExoPlayer для воспроизведения 20 аудиофайловв цикле (после завершения последнего файла первый файл запускается автоматически).

Приложение работает нормально в течение нескольких часов.Иногда и во время воспроизведения звука (активность в фоновом режиме) приложение перестает воспроизводиться без каких-либо сообщений об ошибках и исчезает, и мне нужно снова открыть приложение.(это произошло с двумя разными устройствами).

под частью из манифеста

    <application
    android:largeHeap="true"
    android:allowBackup="true"
    android:hardwareAccelerated="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/MyMaterialTheme"

    >
    <meta-data
        android:name="firebase_crashlytics_collection_enabled"
        android:value="false" />
    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

    <meta-data android:name="android.max_aspect" android:value="2.1"/>
    <activity android:name="PKG.SplashActivity"
        android:theme="@style/MyDialogTheme"
        android:configChanges="orientation|screenSize|keyboard">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name="com.google.android.gms.ads.AdActivity"
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
    <activity
        android:name="com.facebook.ads.AudienceNetworkActivity"
        android:hardwareAccelerated="true" />
    <activity
        android:launchMode="singleTask"
        android:name="PKG.PlayerActivity"
        android:configChanges="orientation|screenSize|keyboard"
        android:label="@string/app_name"
        android:theme="@style/MyDialogTheme">
    </activity>
    <activity
        android:name="PKG.MainActivity"
        android:label="@string/app_name"
        android:configChanges="orientation|screenSize|keyboard">
    </activity>

Код сбоев добавлен в Основное действие (не всплеск):

        final Fabric fabric = new Fabric.Builder(this)
            .kits(new Crashlytics())
            .debuggable(true)  // Enables Crashlytics debugger
            .build();
    Fabric.with(fabric);

Мои вопросы:

  • Как использовать Crashlytics, чтобы перехватить такую ​​остановку приложения?
  • любой другой способ поймать это падение?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

шаг 1: вы должны добавить аварийные сбои в gradle следующим образом: реализация ('com.crashlytics.sdk.android:crashlytics:2.9.1@aar')

шаг 2: вызвать Fabric.with (это, новые Crashlytics ());в вашей первой деятельности

Обратите внимание, что вы должны создать учетную запись в Fabrics.Также вы должны добавить плагин Fabric в вашу андроид студию.Так что отчет о сбое будет отправлен на ваш зарегистрированный адрес электронной почты

0 голосов
/ 16 октября 2018

в Application.class

Thread.setDefaultUncaughtExceptionHandler(new CrashExceptionHandler(context));

public class CrashExceptionHandler implements Thread.UncaughtExceptionHandler {

Context mContent;

private CrashExceptionHandler() {

}

public CrashExceptionHandler(Context context) {
    this.mContent = context;
}

@Override
public void uncaughtException(Thread t, Throwable e) {
    String errorStr= "";
    for (StackTraceElement obj:e.getStackTrace()) {
        errorStr +=" | "+obj.getFileName()+":"+obj.getClassName()+":"+obj.getMethodName()+":"+obj.getLineNumber();
    }
    // save into file or in log....
}

}

...