Android — CrashlyticsDidDetectCrashDuringPreviousExecution для аварийного NDK

Мы используем crashlyticsDidDetectCrashDuringPreviousExecution для обнаружения сбоев java и сообщения о них в наши би-системы, но наше приложение в основном C ++, и мы используем NDK для аварийного отключения, мы не можем найти ничего похожего на crashlyticsDidDetectCrashDuringPreviousExecution.

Как мы можем обнаружить сбой NDK при запуске приложения?

Спасибо
Одед

0

Решение

Майк из ткани здесь.

В настоящее время нет способа сделать это в Fabric или SDK для сбоя NDK.

0

Другие решения

ПРИМЕЧАНИЕ. Это работает только в более старых версиях (Crashlytics 2.6.7 и CrashlyticsNDK 1.1.6).

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

Fabric.with(this, new Crashlytics.Builder().core(core.build()).build(), new CrashlyticsNdk(), new Crashlytics());
if (!userLeft) { // our handling to fix bug, see explanation below
new Thread(new Runnable() {
@Override
public void run() {
SessionEventData crashEventData = null;
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(1000); // in ms
} catch (InterruptedException e) { }

crashEventData = CrashlyticsNdk.getInstance().getCrashEventData();
if (crashEventData != null)
{
// there was a crash!
// crash timestamp can be found at crashEventData.timestamp
break;
}
}
}
}).start();
}

Объяснение для userLeft:

У нас была ошибка с сообщением о сбое для пользователей, вышедших из приложения, и это решение для этого. Мы устанавливаем для этого флага значение true и сохраняем его на устройстве (SharedPreferences). Мы делаем это в нашей основной деятельности (которая расширяет NativeActivity), в функции finish ().
Код:

@Override
public void finish() {
// set some key such as USER_LEFT to TRUE
super.finish();
}

После этого просто получите значение USER_LEFT, присвойте его параметру userLeft и установите для него значение false в SharedPerferences.

Есть идеи об этом решении?

0

По вопросам рекламы [email protected]