Tôi cũng tìm thấy một số tốt example project cho điều đó. Vì nó là trong dự án bạn có thể thiết lập Google Breakpad thích:
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);
}
}
ở phía cpp và như:
// Save Dump Path
initNative(getExternalCacheDir().getAbsolutePath());
ở phía java.
Sau khi thực hiện chức năng bool DumpCallback(const google_breakpad::MinidumpDescriptor& descriptor, void* context, bool succeeded)
, bạn sẽ có thể làm điều gì đó trước khi ứng dụng gặp sự cố.
Tôi đã gặp phải và cũng tìm thấy sự cố this xác nhận tôi, rằng trong chức năng này bạn không thể thực hiện cuộc gọi lại java dưới ART ngay dưới DVM (trước android 5 - Lollipop).
Ứng dụng có hoạt động trên Android dù nó không hỗ trợ xử lý ngoại lệ C++? Tôi rất thích nó nếu nó hoạt động !!! – Cipi
Nó hỗ trợ xử lý ngoại lệ C++ cũng như –
Tôi có thể tạo ứng dụng khách bằng cách sao chép android/google_breakpad/Android.mk vào thư mục gốc của nguồn breakpad google, chỉnh sửa để xóa ../ .. khỏi tệp .mk và đặt tất cả trong thư mục NDK_MODULES của tôi, nhưng không thể xây dựng các công cụ lưu trữ để thực sự có ý nghĩa về bãi chứa nhỏ, ít nhất là không sử dụng Cygwin. –