También encontré una buena example project para eso. Como lo es en el proyecto puede configurar Google Breakpad gustan:
extern "C" {
void Java_com_pluusystem_breakpadjavacall_MainActivity_initNative(JNIEnv* env, jobject obj, jstring filepath)
{
const char *path = env->GetStringUTFChars(filepath, 0);
google_breakpad::MinidumpDescriptor descriptor(path);
exceptionHandler = new google_breakpad::ExceptionHandler(descriptor, NULL, DumpCallback, NULL, true, -1);
}
}
en el lado CPP y al igual que:
// Save Dump Path
initNative(getExternalCacheDir().getAbsolutePath());
en el lado de Java.
Después de eso la implementación de la función bool DumpCallback(const google_breakpad::MinidumpDescriptor& descriptor, void* context, bool succeeded)
podrá hacer algo antes de que la aplicación falle.
He experimentado y también encontré this problema que me confirma, que en esta función no se pueden hacer devoluciones de llamada de java bajo ART justo debajo de DVM (antes de Android 5 - Lollipop).
¿Puede funcionar en Android, ya que no admite el manejo de excepciones C++? ¡Me encantaría si funciona! – Cipi
Soporta el manejo de Excepción de C++ también –
Puedo construir el cliente copiando el android/google_breakpad/Android.mk en la raíz del código fuente del código fuente de google, editando para eliminar el ../ .. del archivo .mk y poniendo todo en mi directorio NDK_MODULES, pero no puedo construir las herramientas de host para realmente darle sentido al mini volcado, al menos no usando cygwin. –